開始用 GitHub 管理修改的 Kernel 原始碼後,
為了讓程式碼可以隨時跟上最新修改,
把 Cross Compile 用的環境也做了大修改,
清掉許多不需要的STLinux套件,
再更新到最新版 STLinux 2.4 套件,
整個映像檔(內含解開的 kernel source)只有約 2GB,
壓縮後約450MB。
http://sync.hamicloud.net/_oops/rexct/mha
找不到 DVD Image 的解決方法:
以文字編輯軟體開啟解壓縮出的 CentOS_64\CentOS_64.vbox ,
將 <DVDImages> 與 </DVDImages> 之間(15行到22行)的 <Image .... > 刪除。
奇怪,之前在Windows下測試時好好的。
環境:
Cent OS 6.4STLinux 2.4 (2013/12/08)
預設模擬 4 CPU ,
SSH port 對應到Host 的 127.0.0.1 port: 21522,
用來以 SSH 控制和 sftp 傳檔案。
縮簡virtualbox 映像檔需要的 zerofree 在 /usr/sbin/zerofree
使用方法:
user ID:sh4twbox密碼:sh4twbox
sudo 不須輸入密碼。
root密碼:sh4twbox
在 /home/sh4twbox 執行
$ ./start.sh
會出現功能選單。
Script 同樣是以 GitHub 來管理,
https://github.com/rexct/script2compile_nextvod
檔案全放在 /home/sh4twbox/script2compile_nextvod
包含編 kernel 時用到的 .config 檔案 kernel.config
在 /home/sh4twbox 下有個連結檔 start.sh,
連結到 /home/sh4twbox/script2compile_nextvod/start.sh。
功能選單內容:
1. Update script file
更新 script2compile_nextvod 內的 script,以後就只透過GitHub來新增 script 功能和修改系統。
2. Compile kernel
執行小修改的make_kernel.sh ,
和之前相較,
多了自動取得CPU數目,
及編譯參數:CFLAGS="-m4a -pipe -O3 -ffast-math",
同樣一直按 Enter 就會自動編好 vmlinux.ub 、modules 和複製 Headers 。
3. Update kernel source code from github
目前預設從 https://github.com/rexct/kernel-pdk7105 更新。
4.~5. 目前未完成
6. Clean code
會執行 script2compile_nextvod/clean.sh,
(1) Clean kernel source:
會清除 compiler 所產生的所有檔案。
(2) Clean Kernel source:
除了清除 compiler 產生的檔案,
還會清除 .config,
準備上傳到 GitHub 。
7. Git Tool
方便用在上傳變更到 GitHub 的項目。
內含的 kernel source code 和 .config 特別的功能:
1. reset button 作為 platform device,可用於從 suspend 喚醒。
2. LED 作為 platform device,可用不同的 LED Trigger。
3. 驅動內建音效從 AV端子輸出。
內建音效如同之前最底部的推測,
原本 Sound Card 中的 STx7105 項目無法編譯, 加入了兩個 fdma 的 firmware 後可以編譯,
就能驅動內建音效輸出。
清理 STlinux 套件是先
# stmyum erase stlinux24-sh4-*
但是相依性會連以下三個也移除
stlinux24-cross-sh4-g++ i386 4.3.4-63 installed 24 M
stlinux24-cross-sh4-gcc i386 4.3.4-63 installed 31 M
stlinux24-cross-sh4-protoize i386 4.3.4-63 installed 336 k
所以在更新到最新版後,
把上面三個手動安裝就可以恢復編譯 kernel 的環境。
另外原本有配置 1GB 的 swap 分割區,
用以下方式調整 LVM 分割區大小:
查看目前狀態
# lvdisplay
/dev/mapper/VolGroup-lv_swap 和 /dev/VolGroup/lv_swap 是指同一個邏輯分割卸載 /etc/fstab 中列出的所有 swap 分割區
# swapoff -a
縮到最小允許的4MB,沒這個分割會無法開機
# lvresize --size 4M /dev/VolGroup/lv_swap
全部寫入 0,才能用 vboxmanage 縮小映像檔大小
# dd if=/dev/zero of=/dev/mapper/VolGroup-lv_swap bs=1M
重建 swap 分割區資料
# mkswap /dev/mapper/VolGroup-lv_swap
手動掛載 swap
# swapon /dev/mapper/VolGroup-lv_swap
顯示目前 swap 狀態
# swapon -s
查看目前未配置容量
# vgdisplay
擴大 root 分割大小 1020MB
# lvresize --size +1020M /dev/VolGroup/lv_root
擴大 ext檔案系統到整個分割大小
# resize2fs /dev/VolGroup/lv_root
另外就如之前測試的,
更新到 STLinux 2.4 最新版套件後,
編譯時間會變長,
Kernel 在PHP 的 Benchmark 測試也會變慢一點。
您提供的這個Cross Compiler環境很好,
回覆刪除但有個問題,可以請您用「匯出應用裝置」把它匯出成ovf檔案嗎?
因為整個目錄,其實沒辦法直接匯入到VirtualBox當中。
可以直接加入到VitrualBox中。
刪除請在VirtualBox 主視窗選單列選「機器(M)/加入(A) Ctrl+A」
選擇解壓縮出的資料夾中的.vbox檔案就可以直接加入。
這個方法有在 Linux版本和 Windows 版本上測試過。
沒包成ovf的原因是從網路上下載後,
解壓縮出ovf還要再另外匯入成虛擬機器映像檔,
需要將近多一倍的使用空間。
如果有什麼地方無法直接加入映像檔的麻煩請再通知我。
作者已經移除這則留言。
刪除可以參考在 網樂通改機俱樂部 有人是用p910nd作印表機伺服器
刪除https://www.facebook.com/groups/477359555618518/permalink/626626180691854/
在俱樂部內搜尋印表機還有其他相關討論。
.vbox 沒辦法加進去,virtualbox說沒有對應的 iso
刪除不過新增一個機器直接掛上硬碟開PAE就可以了,也不需要弄.vbox
我家的印表機是HP的事務機,
刪除HP在Linux上是透過HPLIP來列印和掃描,
HPLIP是depend在cups和sane......
HPLIP的tool是python開發的.......
因此無法簡單的用p910nd來解決。
另外,針對kernel中USB Printer部份,
先前是我手誤直接在kernel目錄下make menuconfig,
造成sh4 config錯亂,
問題已經排除,所以我將回覆刪除了!
還是感謝版主的回覆。
如果有出現需要iso可能是我在使用CentOS rescue CD 縮小映像檔時忘了移除了,
刪除我之後再檢查看看是不是這個情況,
應該也不影響載入才是。
您好,您提供的這個Cross Compiler環境我利用過年研究了,
回覆刪除目前正在順利使用中,
除了CentOS我不習慣外(我習慣操作Debian/Ubuntu系列),
開發環境相當不錯,開發起來相當的方便。
你能夠整理提供這樣的開發環境,非常感謝!
另外,之後我想在我的blog上po網樂通開發相關的文章,
回覆刪除其中針對Cross Compiler的環境,我想直接引用你這一篇,
是否方便提供給我引用?
我會使用的blog是:
http://ycfu.blog.mypc.tw/
非常高興寫的文章對你有幫助,
刪除歡迎引用有需要的文章,
只要在參考資料或引用來源加上連結就可以了。
請問要怎樣才能用 pietty ssh到 VirtualBox 因為我在 VirtualBox 內打ifconfig都抓不到網卡 只有lo介面 沒有eth0
回覆刪除請問在啟動虛擬機器後的視窗功能表列中 裝置/Network 中有看到 Connect Network Adapter 嗎?
刪除點上方的 網路設定 ,
介面卡1 中是否有勾 啟用網路卡? 附加到 試試看選 NET。
我有啟用網路卡
刪除我下了這指令dmesg | grep -in eth有卡到eth0介面的網卡
408:e1000 0000:00:03:0: eth0: (PCI:33MHz:32-bit)
409:e1000 0000:00:03:0: eth0: Intel(R) Pro/1000 Network Connection
但下了ifconfig看不到eth0介面
請問這得如何手動安裝?
回覆刪除stlinux24-cross-sh4-g++ i386 4.3.4-63 installed 24 M
stlinux24-cross-sh4-gcc i386 4.3.4-63 installed 31 M
stlinux24-cross-sh4-protoize i386 4.3.4-63 installed 336 k
安裝套件使用 stmyum install
刪除不是以 root 登入,前面要加上 sudo 。
stmyum使用方法和yum一樣,
可以參考 http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php#yumclient_yum 下的 安裝/升級功能:yum [install|update] 軟體
請問是要將所有 STLinux 套件升級成目前最新版本嗎?
作者已經移除這則留言。
回覆刪除