2014.07.06 增加加入.vbox 時,找不到 DVD Image 的解決方法。
開始用 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下測試時好好的。
2013年12月9日 星期一
2013年12月1日 星期日
修正LED狀態、使用 Timer 和 gpio Trigger 及編入 STx7105 內建音效支援
在測試 retain_state_suspended 時,
發現 suspend 時不維持 LED 狀態(0)會變成全亮,
原因是 active_low 設定錯了,
要設定為 0 才符合實際狀態,
Heartbeat trigger 也變成比較像心跳那樣閃兩下,
而不是變暗兩次。
連帶 script 中控制亮暗也要變更,
(ledctl2.sh ver 2.1 http://sh4twbox.googlecode.com/files/ledctl2.sh)
如果只更換 script 沒換 kernel,
燈號控制會部份失效。
修正部份的程式碼:https://github.com/rexct/kernel-pdk7105/commit/f10f9203a5301bb87b044ab4c333d625205f6d4a
發現 suspend 時不維持 LED 狀態(0)會變成全亮,
原因是 active_low 設定錯了,
要設定為 0 才符合實際狀態,
Heartbeat trigger 也變成比較像心跳那樣閃兩下,
而不是變暗兩次。
連帶 script 中控制亮暗也要變更,
(ledctl2.sh ver 2.1 http://sh4twbox.googlecode.com/files/ledctl2.sh)
如果只更換 script 沒換 kernel,
燈號控制會部份失效。
修正部份的程式碼:https://github.com/rexct/kernel-pdk7105/commit/f10f9203a5301bb87b044ab4c333d625205f6d4a
2013年11月24日 星期日
讓網樂通的LED像心跳一樣閃動
之前 github中branch leds 中的程式碼完全正確,
問題的確是在 kernel config中。
只要在 menuconfig 時選擇以下項目
Device Drivers --->
LED Support --->
LED Class Support
LED Support for GPIO connected LEDs
Platform device bindings for GPIO LEDs (NEW)
及需要的 Trigger (預設用到的有 Heartbeat 和 ide-disk),
或手動把
# CONFIG_LEDS_CLASS is not set
改成
CONFIG_LEDS_CLASS=y
再加入以下兩個就不會消失了
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
問題的確是在 kernel config中。
只要在 menuconfig 時選擇以下項目
Device Drivers --->
LED Support --->
LED Class Support
LED Support for GPIO connected LEDs
Platform device bindings for GPIO LEDs (NEW)
及需要的 Trigger (預設用到的有 Heartbeat 和 ide-disk),
或手動把
# CONFIG_LEDS_CLASS is not set
改成
CONFIG_LEDS_CLASS=y
再加入以下兩個就不會消失了
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
還無法註冊成platform device 的 LEDs 附加測速
上一篇 網樂通 reset 按鈕設定成 platform device 提到LED問題,
除了註冊裝置的程式碼是無效的註解外,
GPIO 腳位定義不對,
但是改完後還是沒出現該有的裝置。
原因可能是在手動加入的 kernel .config 項目被自動刪除。
還不能動的原始碼另開一個 branch https://github.com/rexct/kernel-pdk7105/tree/leds
最後加映可能是加上 fdma 韌體、加入編譯參數 CFLAGS="-m4a -pipe -O3 -ffast-math" 以及更新 cross-compile 環境到 2013/11/03 時,
對執行速度的影響。
除了註冊裝置的程式碼是無效的註解外,
GPIO 腳位定義不對,
但是改完後還是沒出現該有的裝置。
原因可能是在手動加入的 kernel .config 項目被自動刪除。
還不能動的原始碼另開一個 branch https://github.com/rexct/kernel-pdk7105/tree/leds
最後加映可能是加上 fdma 韌體、加入編譯參數 CFLAGS="-m4a -pipe -O3 -ffast-math" 以及更新 cross-compile 環境到 2013/11/03 時,
對執行速度的影響。
網樂通 reset 按鈕設定成 platform device
原本以為將原本完全沒設定的 reset 按鈕註冊成 platform device 會是最困難的,
之前先試著改紅外線遙控喚醒卻不好找到問題。
找了些gpio key的資料後,
順利把 reset 按鈕設定成 platform device。
除了在 dmesg 中出現下面訊息外,
evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 1
evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 0
evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
意外的順利用來喚醒 suspend to ram 的系統,
雖然沒有遙控器喚醒方便,
但已經比之前只能用 WoL 和 TTL 訊號實用多了。
修改已經更新到 https://github.com/rexct/kernel-pdk7105
之前先試著改紅外線遙控喚醒卻不好找到問題。
找了些gpio key的資料後,
順利把 reset 按鈕設定成 platform device。
除了在 dmesg 中出現下面訊息外,
evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 1
evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 0
evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
意外的順利用來喚醒 suspend to ram 的系統,
雖然沒有遙控器喚醒方便,
但已經比之前只能用 WoL 和 TTL 訊號實用多了。
修改已經更新到 https://github.com/rexct/kernel-pdk7105
2013年9月11日 星期三
更新編譯網樂通kernel和uboot的 VirtualBox 映像檔
主要因為有了更多功能的 twpda u-boot,
另外內附的 kernel.config 也需要更新到支援cpu frequency scaling 的設定,
也修正 make_kernel.sh 最後無法建立kernel header 的錯誤。
http://sync.hamicloud.net/_oops/rexct/2ri
557MB,解開後2.5GB。
內含由 網樂通改機俱樂部Chia-Cheng Huang (suzuke) 釋出的網樂通 kernel 2.6.32.59,
以及 dlintw釋出的 twpda u-boot v1309 。
另外內附的 kernel.config 也需要更新到支援cpu frequency scaling 的設定,
也修正 make_kernel.sh 最後無法建立kernel header 的錯誤。
http://sync.hamicloud.net/_oops/rexct/2ri
557MB,解開後2.5GB。
內含由 網樂通改機俱樂部Chia-Cheng Huang (suzuke) 釋出的網樂通 kernel 2.6.32.59,
以及 dlintw釋出的 twpda u-boot v1309 。
2013年8月27日 星期二
mdev automount 和中場休息
一直都是用手動方式掛載USB儲存裝置,
在讓PC的ArchLinux可以自動掛載USB儲存裝置後,
覺得網樂通上面要手動實在太不人性化了。
在看 /etc/rc.sysinit 時看到 mdev,
echo /sbin/mdev > /proc/sys/kernel/hotplug
表示有新裝置接上時會叫mdev處理。
在讓PC的ArchLinux可以自動掛載USB儲存裝置後,
覺得網樂通上面要手動實在太不人性化了。
在看 /etc/rc.sysinit 時看到 mdev,
echo /sbin/mdev > /proc/sys/kernel/hotplug
表示有新裝置接上時會叫mdev處理。
2013年8月26日 星期一
增加kernel 設定和找SPI flash
週末趁著有高速電腦可以用趕快編kernel,
加了下列幾項
== System type
==== Timer and clock configuration --->
Tickless System (Dynamic Ticks)
==== CPU Frequency scaling --->
======Default CPUFreq governor
defautl scaling governor: conservative
'conservative' cpufreq governor
STMicroelectronics CPU Frequency driver
==Power management options
==== Power Management support
Power Management support
Suspend to RAM and standby (NEW)
Run-time PM core functionality (NEW)
CPU idle PM support自動調整CPU頻率生效了,
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
56250
不過我比較想要用 Ondemand governor,
有工作就馬上用全力處理完再來休息。
2013年8月23日 星期五
繼續挖GPIO
在GPIO LED初步完成控制後,下一步找 reset 按鈕。
同樣在 board/st/pdk7105/swUpdate.c 中找到 reset 按鈕相關:
static int check_key_press(void)
{
int count,cur_key,next_key,led;
led=0x00;
count=7;
cur_key=STPIO_GET_PIN(PIO0_BASSADDRESS, 1);
同樣在 board/st/pdk7105/swUpdate.c 中找到 reset 按鈕相關:
static int check_key_press(void)
{
int count,cur_key,next_key,led;
led=0x00;
count=7;
cur_key=STPIO_GET_PIN(PIO0_BASSADDRESS, 1);
2013年8月18日 星期日
網樂通可以正常醒來了!
從之前弄好 EeePC 4GB ram 在 32bit 系統完整利用後就想把一些東西寫出來,
到現在終於動手了。
之前做好了用於VirtualBox 的CrossCompile環境後,
可以好好利用去上課時的電腦來編譯網樂通用 linux kernel,
節省編譯的時間。
不然用我手上最快的裝置 EeePC 1015B,
光kernel主檔案就要跑20分鐘啊。
上課用電腦2分鐘內解決。
至於上課,
我也不知道為什麼Android的課會上Office Access 。(Orz)
聽到table的規劃時,
突然有種回到大學最後在幫忙弄活動網站,
搞MySQL時的錯覺 。
訂閱:
文章 (Atom)