网络盒子安装 linux,天猫魔盒安装原生linux的一些初步成果
## 按
( o/ o8 \6 v) h- \; i7 ^' _??s4 S% m% d
一開始,我是想試試看能不能借由原生linux解決魔盒偽1080輸出的問題。畢竟國內(nèi)廠商靠不住這件事人盡皆知,求人不如求己?,F(xiàn)在新版魔盒已經(jīng)出來了,這個(gè)問題原廠就更加不會(huì)管了。2 z3 v4 |+ ???{, @! B: X1 t
& m& H* ~* X+ ]# Q3 q目前debian可以在魔盒上跑起來了,但問題還是很多。首先是音頻驅(qū)動(dòng)存在問題,alsamixer顯示找不到控制器,aplay不報(bào)錯(cuò)但電視機(jī)端也沒有音頻輸出。其次是遙控和usb口也都無法使用。
; ?. h$ A' e5 u9 e3 C9 ]1 d& Z# y
( C0 x2 R( y& [0 X* o這些問題不解決,即使花很多功夫把xbmc編譯出來也沒有實(shí)用價(jià)值。而我最近事情有些多,暫時(shí)沒辦法繼續(xù)搞下去了。寫這張?zhí)邮窍M?#xff0c;如果有人對(duì)這個(gè)問題有興趣,可以通過我的帖子節(jié)約一點(diǎn)時(shí)間,也算是回饋論壇了吧。H+ z: r' A2 N! y/ k% m+ p9 e
1 ?) U, b0 {" k" T( N哈哈6014和1024255317給我提供了不少幫助,一并在此表示感謝。' ^# L$ g6 Q* f" S
# r' R! Z2 I9 L5 Q5 v$ _) O
## UBOOT
$ P3 y9 R; A* }% X: ^( |; ?2 d, ]% g( v4 ~
因?yàn)槲蚁MA鬾and內(nèi)的安卓系統(tǒng),所以linux就只能安裝在tf卡中。雖然有朝一日如果能研究出點(diǎn)成果,拆機(jī)并不是必須的步驟。但就目前而言,沒有uart接口就看不到輸出,沒法折騰,所以拆機(jī)焊線就目前來說仍然是必須的。$ P/ P??t! p# J- O/ g- B: E. E
! d1 a1 _; c3 c/ a5 M% n# K7 M3 `
為了一張tf卡在兩個(gè)系統(tǒng)中都派上用場,我把一張16G的tf卡為了兩個(gè)區(qū),第一個(gè)分區(qū)4G的fat32,剩余部分則格式化為ext3。
+ |8 d4 p( ^$ O7 k1 ^3 I5 S, a1 ^! U) W, {
想要啟動(dòng)時(shí)加載tf卡上根目錄中名為uImage的內(nèi)核文件,我們可以在uboot中這么做:
+ H1 i3 f8 ~# H1 o& h
mmcinfo
* y7 g8 h! g6 \5 M- |) M7 c
fatload mmc 0 ${loadaddr} uImage8 K??[/ i* J& R( \' D
bootm( g* a% H/ M" h% M% U9 X; F/ |復(fù)制代碼如果希望啟動(dòng)時(shí)默認(rèn)加載tf卡上的linux內(nèi)核,則可以這樣做:
& k* v# C??l9 H: {4 O2 J$ H: v6 F
setenv bootlnx 'mmcinfo; fatload mmc 0 ${loadaddr} uImage; bootm; '
0 J; _$ |/ ]9 I- g
setenv bootcmd 'run bootlnx'2 E: `0 z. T! I: z' K2 h0 R/ M4 Q5 L
saveenv4 E4 m, Y0 L$ S" |$ Y1 z0 U復(fù)制代碼另外還有個(gè)法子,可以在上電時(shí)通過狂按遙控上的菜單鍵加載tf卡上的系統(tǒng):
" y??b; F??j6 {( z! y
setenv bootlnx 'mmcinfo; fatload mmc 0 ${loadaddr} uImage; bootm; '
& h??X7 U2 u# k: ~' f5 a2 L
setenv irremote_update 'if irkey 0x1f2d12e 500000 ;then run bootlnx; fi'$ D: t5 q$ F" F" w. ]??i2 z, p
saveenv$ }/ d& G5 L: X??A復(fù)制代碼關(guān)于uboot的更多內(nèi)容,可以參考一下這張?zhí)?#xff1a;http://www.7po.com/thread-235366-1-1.html- q: x7 G0 J& ^
4 n7 i' T+ W2 ?
## 內(nèi)核
; k4 v( U9 S8 C5 z
t0 F$ F* J+ a% n% I2 L9 n' B. qamlogic官方放出的內(nèi)核以及驅(qū)動(dòng)源碼這里有:http://openlinux.amlogic.com:8000/download/ARM/3 u* z; L5 Z/ Y??A??c
' ?5 A: _" @0 L5 [* ?! \1 X# V
不過直接用這里的代碼雖然能夠成功編譯,但實(shí)際使用時(shí)有非常多的問題,所以我用的是wjb@github修改整理的版本。/ E; c5 @- B2 c
8 a0 s/ _+ T5 W6 b3 ?
編譯內(nèi)核使用的是ubuntu 12.04,安裝必須的軟件包什么的我就不廢話了,具體編譯過程大概是這樣:
: ^1 P6 w9 ^+ o5 ~9 [: [
sudo apt-get install gcc-arm-linux-gnueabihf
# e! `$ }4 W) Z- i( \' f
2 A) `2 y& G: W# g7 e
git clone https://github.com/wjb/mx-common.git# ~$ A# R2 p- ]
cd mx-common/ L. Q! x3 l/ [6 T6 S
! R' w; H6 b$ A3 J, i
export CROSS_COMPILE=arm-linux-gnueabihf-0 P* ^/ m- _* t' T6 i/ {
export ARCH=arm. \* {- O& v6 r& X) [% [
make mrproper
. @; Z: c" {6 F9 ~1 B7 [
make meson6_g18_mx2_defconfig( E7 Q9 p* S0 \* J. U??T3 q
make menuconfig: k4 z; ?! D, s; a/ P
make uImage -j4+ V??l/ ]; L" m) o3 d' Q: \1 _& ~
make modules -j49 G) ^??n5 q* Q- I: j
+ `7 l4 v; u% A( S??y
sudo cp arch/arm/boot/uImage /media/BOOT
) U* N+ c+ v' \/ C3 G
sudo make INSTALL_MOD_PATH=/media/AMLinux modules_install. F2 `+ h5 H, `' S8 `復(fù)制代碼## Debian; N. ^$ Y; v% W
( q/ V: ^. A$ }, @5 lUbuntu和Debian都提供了ARM支持,下面的方法兩個(gè)發(fā)行版都適用。不過只用命令行的話,Ubuntu遠(yuǎn)不如Debian好用,再加上stable的Debian軟件包太老,所以下面安裝的是sid的Debian。7 f1 B* T* v??J
! A! X' U0 B??~2 t6 M/ [
, T1 `' T& E: n& T9 A. S( vsudo apt-get install qemu-arm-static debootstrap
9 H, ?0 m. E2 A4 pmkdir debian-armhf-sid+ q' X$ X+ T& a/ i
sudo debootstrap --foreign --arch armhf sid debian-armhf-sid http://ftp.tw.debian.org/debian/; i- ?* }% Y2 e! }. C) u
sudo cp /usr/bin/qemu-arm-static debian-armhf-sid/usr/bin/# E4 X6 |$ x' @4 l& n
sudo chroot debian-armhf-sid /debootstrap/debootstrap --second-stage
6 U3 f5 ?# q+ n9 c) U# c4 Lsudo chroot debian-armhf-sid
7 V" ]& C! @. r5 x+ k8 s* A3 L
/ }! |5 R; }, h+ u9 F; r8 W7 m- e. |1 p, C
qemu-arm-static很不錯(cuò),可以直接在PC上chroot進(jìn)ARM系統(tǒng),相當(dāng)方便。
0 A: d3 y" _3 z; h& `
/ K; n3 r: F+ H1 ?, l' L5 K然后就是一些基本設(shè)置:
$ O. |: e/ y) G3 \6 c+ W6 q: T- K
3 a* q: g. p9 c- g
1 V/ `' x9 z5 i1 x5 ?; O: q4 p4 ^passwd1 t' {8 I* K' ]5 e3 x1 D% b
echo AMLinux > /etc/hostname
' e" e! o4 v# G) e4 ]3 z. Fecho deb http://ftp.tw.debian.org/debian sid main contrib non-free >> /etc/apt/sources.list" j# h# Y5 M5 T5 h/ T" t
apt-get update, k7 u) V5 h/ ]# |
apt-get install locales! Q2 m2 }! H. U3 A* Q+ [/ \: H- s
dpkg-reconfigure locales
) A) |3 e& Z6 j6 P# a2 }- aapt-get install wireless-tools wpasupplicant
5 D- u, [% K! D5 g) d$ [/ d: vmknod -m 660 /dev/ttyS0 c 4 64
6 \1 B# o1 X0 E, k( f
, L( u6 q( C6 u* N$ @; e/ B5 f5 }* v. d+ B6 L
編輯/etc/inittab,將ttyS0所在行改為:
: Y4 I* Y4 B5 b, z( ?" d5 c! W+ e9 O: v8 m
: l. ~# }# }% ^( u0 O/ j9 u+ Y" @T0:2345:respawn:/sbin/agetty -L ttyS0 115200 vt1005 H3 b& h; L??T
4 V9 N! Y8 e! ~, r# C5 o: H' o3 H
3 [) V5 p, C9 Q完成后cp -a將debian-armhf-sid復(fù)制到TF卡的ext3分區(qū),到這里該TF卡就可以在魔盒中成功啟動(dòng)了。
1 m+ A( {; |/ g1 O??q" \1 C
0 h: B# j) Y8 G2 k; Q. H## 現(xiàn)存問題
' U) \5 F' y- M7 o1 m7 c4 i, P8 |) _5 {9 j% U??M; N% x
### 有線網(wǎng)卡的mac地址問題5 ], H* o- r2 r# M1 Y, R: U
k8 m" x7 d??n( {: H: e在啟動(dòng)linux時(shí),log里有一句未配置mac地址,使用隨機(jī)地址的信息。進(jìn)入linux后重啟進(jìn)入android,系統(tǒng)會(huì)自動(dòng)運(yùn)行一個(gè)叫MiptAutoTestForAli-10030的程序。雖然看起來很嚇人,但其實(shí)只要在這個(gè)程序中選擇寫入隨機(jī)mac地址再退出,就可以正常使用android系統(tǒng)了。1 R3 [% z* T/ T5 E5 r0 N/ X
; d* o( f- o1 I# X0 {- m
這有可能是linux下的網(wǎng)卡驅(qū)動(dòng)不完善導(dǎo)致的,不過也不是什么大問題就是。
: J7 U! w$ D( u! N7 L4 j3 I/ a
### usb口無法使用$ w$ ^# N- d! s: ^
1 I! }! T9 g- j1 S" p) r. z??]啟動(dòng)信息看不出什么問題,usb相關(guān)內(nèi)容都有也都正常,但不管是啟動(dòng)前還是啟動(dòng)后插入usb設(shè)備,系統(tǒng)都認(rèn)不出來。
( _) F+ G9 ?( D
7 E. R3 P$ j??L??_, X. X# H### 音頻輸出
* ?3 |4 ^& A( y8 E
; }# Z" T: ]4 `( j+ B+ F! camlogic雖然也用了alsa,但似乎沒有提供/dev/dsp一類標(biāo)準(zhǔn)接口。在android中我用optware安裝了alsa相關(guān)工具,同樣有alsamixer顯示無控制器,aplay無法輸出的問題,所以這究竟是怎么回事還有待研究。( d2 a& g. Z0 K* f, h. b+ q/ T
8 j) _! t3 X5 y0 |# `### 遙控器不能用
) j- r: i* i0 y; Z# N9 r# ^6 [7 d# E4 m
應(yīng)該也是驅(qū)動(dòng)問題,不過只要usb口可以正常使用了,大不了用鼠標(biāo)不用遙控就是,問題不大。
, V+ Y4 e# [6 [, k. Z3 @7 F7 o5 u) d3 w0 L( h' p, w' H1 A8 [
! Q( `- @- f3 U1 U$ c9 b0 x- E% D
總結(jié)
以上是生活随笔為你收集整理的网络盒子安装 linux,天猫魔盒安装原生linux的一些初步成果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 21天学通c语言第四版pdf,21天学通
- 下一篇: 查看SELinux状态