2013年12月9日 星期一

新編譯網樂通核心VirtualBox 映像檔-Cent OS 6.4 with STLinux 2.4

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月7日 星期六

修滑鼠 救地球

自己一直是使用 Seednet 遲送合約贈品加送的滾球滑鼠,
到現在應該有10年,
偶爾清清內部髒污,
還是頭好壯壯。

要修的反而是買不到兩年電腦附贈的滑鼠,
按鍵不靈又會自動點好幾下。
感覺上就是計劃性淘汰的製品,
過一下子就會自然故障。
雖然修好不會有獎金,
但是當作練功還可以,
還可以順便減少電子垃圾救地球。

工具:修眼鏡用一字起子、不大的尖嘴鉗

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

控制 LED 的 script

檔案 http://sh4twbox.googlecode.com/files/ledctl2.sh

只能用在註冊成 Platform Device 的 LED 燈上。


ledctl2.sh {show | red | blue | purple | off | s | r | b | p | o}
ledctl2.sh set {on | off | keep | k | TRIGGER} [on | off | keep | k | TRIGGER]
2013/12/07:修改 script 配合修正過的LED控制狀態

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

還無法註冊成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 時,
對執行速度的影響。

網樂通 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

2013年9月15日 星期日

掛載含MBR的映像檔

想要提出sh4twbox支援256MB RAM的 u-boot 升級檔案,
問到了dlintw 說 sh4twbox使用手冊 中寫可以用 kpartx。
可是在 Archlinux 中找不到這個程式,
(原來是在 AUR 中的 multipath-tools ,再次謝謝dlintw)
只好來用原始的 losetup ,
最後在 wiki.OSDev.org Loopback Device 找到接近要用的說明。

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

2013年9月6日 星期五

翻譯過的Wii大家來投票頻道題目

之前翻譯一陣子的Wii大家來投票頻道在今年六月停止服務了,
整理之前翻譯貼在PTT wii版的資料。
因為日文只學一年,
難免有翻譯錯誤的地方,
如果有看到錯誤,麻煩請留言告訴我,謝謝。

除了少部份一看就懂的之外,
都是參考以下三個翻譯網站,
再加上語言修飾。
  1. excite翻譯
  2. Yahoo Japan 翻譯
  3. Google 翻譯
順序由近期開始

2013年9月5日 星期四

CScope 和在Linux用Seral port 連網樂通

要解決網樂通紅外線遙控器在網樂通改機俱樂部Chia-Cheng Huang (suzuke)釋出的 kernel 2.6.32版無法喚醒的問題,
得要從改Kernel的程式碼下手,
看到可以用CScope來追程式碼。

2013年8月27日 星期二

mdev automount 和中場休息

一直都是用手動方式掛載USB儲存裝置,
在讓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);


2013年8月22日 星期四

控制網樂通LED

昨天早上突然興起要繼續包Archlinux的package,
因為miniDlna相依性太複雜,
先從簡單的ushare開始。


很幸運的發現 make 的參數可以設定要不要支援DLNA,
不支援就可以不用管libdlna了。
因為libdlna需要ffmpeg,
ffmpeg又拖了一大串相依套件。

很高興的編完了 libupnp,
結果sh4twbox的套件庫裡原本就有,
所以又是再做一次蠢事。
之前還有Apach、apr、vsftp等。

2013年8月20日 星期二

繼續測試

這兩天針對周末編的核心繼續測試。

因為之前UFW(Uncomplicated Firewall)執行時出現找不到IPv6,
周末版就直接把IPv6相關的加入核心,
測試後的確是可以執行,
不過會當掉,
猜可能是連之前編的module也要一起重編。

另外測試了Wake on Lan,
確定可以傳送Magic 封包到 port 4000喚醒。

2013年8月18日 星期日

網樂通可以正常醒來了!


從之前弄好 EeePC 4GB ram 在 32bit 系統完整利用後就想把一些東西寫出來,
到現在終於動手了。

之前做好了用於VirtualBox 的CrossCompile環境後,
可以好好利用去上課時的電腦來編譯網樂通用 linux kernel,
節省編譯的時間。
不然用我手上最快的裝置 EeePC 1015B,
光kernel主檔案就要跑20分鐘啊。
上課用電腦2分鐘內解決。

至於上課,
我也不知道為什麼Android的課會上Office Access 。(Orz)
聽到table的規劃時,
突然有種回到大學最後在幫忙弄活動網站,
搞MySQL時的錯覺 。