BV1AL 之無所不記

2012-09-17

MK802 之MicroSD 的速度問題

之前用過標準SD卡做Linux filesystem 插到Android 之下跑chroot 沒什麼問題
,沒想到這次在MK802 用MicroSD 跑native Linux竟然一直出問題,在猜是速
度限制造成的。

今天終於去買了一塊class 10的MicroSD來試,結果好太多了,也證實先前的
猜測是對的。

之前手上只有class 4, 一旦寫入多一些,例如install一些packages, 裝完之後整
個file system就亂掉,拔下來拿到別台電腦上fsck,會在 /lost+found 下面有
百個以上(或幾百個?)的檔案,這實要手動復原的話太累了,乾脆重新dd一次。

這樣的情況也導致根本沒辦法做debootstrap 的second stage, 因為每做必爛掉!

看過網路上一些比較數據,似乎class 4 也不會太差,但我遇到的情況卻是不
堪用,應該也不是品牌問題,手上class 4 的卡分別是Sandisk及Kingston 都
一樣會亂掉,今天買的class 10 雖然是不同牌的 Apacer,用起來穩穩的,但
我想應該品牌原因不高。

上篇文章裡提到已經做好kernel/uboot, 只要再跟root filesystem 組合就可以
在MK802 上面跑 native Linux, 網路上已有現成的for MK802 的linux, 但都是
Ubuntu based, 我想做一個Debian wheezy based, 前面幾天都卡在class 4 的
速度不夠以至 deboostrap 的second stage 無法完成,剛好看到小狗板那邊
有人做了一個很basic 的wheezy, 所以先拿來用,其實自己用debootstrap 做
出來也就是那樣子,它也是公開供人下載的,
http://elinux.org/BeagleBoardDebian 。

我make 的kernel 支援fbcon, 原來只要利用 fbterm 就可以在text console 下
顯示漢字,於是我也把自己修訂過的 Droid Sans Fallback 加進去,這樣用
w3m 也可以瀏覽各種CJK網頁,而且在 text console 下執行 fbterm 也可以
設定字體大小,指令像是:
    fbterm -n "Dejavu Sans Mono" -s 14
指定 Mono 在console 裡才不會字體重疊,當它遇到有CJK字時,就會去找
同樣是Sans 的 Droid Sans Fallback 來補位,這樣在閱讀漢字是沒問題,差
的只是不能打出漢字。

試用了一下之後發現用w3m 可以login gmail 讀取信件。

標籤:

2012-09-14

MK802 desktop and kernel 3.0.42

從Raspbery Pi開頭之後,最近好玩的小玩具越來越多,也越來越多山寨,
MK802就是近來頗受歡迎的ARM pc, 它的體積大約是10x3x1 公分, 內建
Android ISC, 直接插到有HDMI 的電視就可以玩。

有關MK802 II 可以參考
http://www.rikomagic.co.uk/forum/viewtopic.php?f=2&t=305

這是中國生產的ARM device, 在youtube 上看過紀錄片似乎是一家很簡陋
類似家庭工廠所生產,或許這樣才能cost down 吧?在露天拍賣的售價
從1550 到兩千多(加其它週邊)都有人賣,它有分一代機、二代機,外觀
不同。

最近剛拿到二代機,一開始用就覺得它實在有些燙,所以乾脆把外殼拆
掉,再貼一塊散熱片在CPU上,但如果就這樣用,散熱片摸起來還是燙燙
的,所以最後就加一個小風扇吹它。



不過我買MK802主要不是跑Android, 而是想跑「正常」的linux 當desktop
,用了幾天的初步結論是實驗性大於實用性!

首先因為它的RAM是燒死的1GB, 不像x86架構可以由user自行加減,所以
當desktop用會有RAM 不足的情形,目前1GB的RAM最多只能用到大約830MB
(當server用的話最多可以用到899372 kB), 其餘被GPU還有不知道什麼
吃掉了,就算不載入mali 相關modules 或是在boot command 加上
"mem=1024M" 它還是無法完全用到1024MB。

其次是解析度,目前能用的就只有1280x720(720p) 或1920x1080(1080p)
兩種可選, 而且是透過boot.scr 來控制, 不是user 在進入linux 環境
後可以改變的,不像在x86 環境可以依螢幕實際解析度來調整。

再來是storage的速度,MK802 要跑「正常」linux的話就是插入一個裝
著「正常」linux的microSD, 目前手邊只有class 4, 在多次使用經驗
中filesystem 常常出現亂掉的問題,懷疑是class 4 速度太慢的原因,
不曉得用class 10會不會好很多?

目前網路上找得到的for MK802 的linux 就是linaro, miniand 以及改
自miniand 的rikomagic 等三個版本, 它們的kernel 對週邊設備支援
太少, 所以我自己clone kernel source 回來make, 換掉原本的舊kernel.

https://docs.google.com/open?id=0ByM1ckIZtYRMZVRZWWhNd0JBZ2M

它是經由 git clone 抓了一些 https://github.com/amery/ 之下相關的
東西回來自行 make, kernel 是 3.0.42. 內容包含 kernel, modules, firmware,
bootloader, 用來換掉那幾個版本裡原本的 3.0.36 kernel.

現在可以使用的包括USB ethernet, USB sound card, USB GPS, 也加上網路
最基本該有的netfilter(for iptables)支援,有興趣的朋友可以下載來替換。

目前我做的這個kernel 已知的問題(但原因不明)包括:
1. OTG 沒有如期生效, 我確定make 裡的選項有選了
2. USB webcam 未能生效, (也是選項有選)
3. RAM 看到(/proc/meminfo) 只有 801440 kB
  (相較於 miniand 3.0.36 kernel的 834036 kB 要少了三十幾 MB)

試了各種boot command, 最後得到 mem=928M 是黃金交叉點, 可以用到約800M RAM.

就算 boot command 告訴它 mem=1024M 的話, 開機後還是只能看到
899372 kB RAM, 但螢幕完全不能用, 不過可以當server 用, 由遠端login 操作.

注意:
使用本人包的kernel/uboot 替換之前,請先確認你做好備份, 本人
不負任何損害責任.

標籤: