一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

為Allwinner A10s MK802編譯搭建Debian無顯示器Server

 dwlinux_gs 2015-02-09

家里一年多前就有一個基于Allwinner A10-evb 1.2的平板,買來之后就裝上了linaro-alip-armhf的ubuntu系統(tǒng)作為家中的服務器,配合lxde和觸摸屏,可以方便的選擇家中的無線網(wǎng)絡,提供lamp等服務。前幾天看到一個tb賣家掛出來的100元包郵的二手閑置全志A10s的Android miniPC,不由心動再添一臺放到學校當服務器。當年買A10平板(1G A8 + 1G RAM + 8G ROM)可是花了將近400元!

TB上的便宜二手A10s平板

聯(lián)系賣家后爽快發(fā)貨買下,只過了一天就運過來了,不過搭建系統(tǒng)是從我在YX上拍的特價49.9元的PNY 16G class10 TF卡兩天后到貨才開始的。

由于這個A10s沒有平板的lcd,身邊又沒有hdmi顯示器,所以并不能用外接鼠標鍵盤顯示器進行改造后的操作。不過這不是問題,我們可以通過串口來進行操作。拆開機殼后發(fā)現(xiàn),有兩組ttl,其中一組賣家改造焊接上了一個紅外頭,另一組懸空著,但看痕跡應該是也焊接過,由于我用不到紅外頭,索性剪掉都引出杜邦2.54排針用于和usb ttl線進行連接,點擊看大圖,我的焊工很一般請輕噴。。。

焊接好串口連接器

A10s焊接好串口杜邦端子,點擊看大圖

硬件準備工作完成,連接上串口看一下輸出的調(diào)試信息,經(jīng)過一番查看后發(fā)現(xiàn)這個A10s和之前的A10并不相同,A10是架構是sun4i,A10s是sun5i,也就是說不能使用已有的A10的u-boot,linux kernel也必須重新編譯。另外wifi連接使用的是SDIO的rtl8188cus,所以在rootfs的boot里的script.fex和相應的script.bin必須將SDIO配置好,否則啟動后無法找到網(wǎng)卡。經(jīng)過無數(shù)次失敗的編譯和部署,總結要點如下

  • 去github上linux-sunxi/linux-sunxi克隆3.4.67或更新的kernel source,并更改.config為sun5i后編譯uImage和modules
  • 在adb shell下將android平臺下nanda重新掛載,adb pull出原始script.bin并使用sunxi-tools中的bin2fex轉換成script.fex進行修改再重新轉換成script.bin
  • 去github上linux-sunxi/u-boot-sunxi克隆最新的版本編譯出mk802_a10s配置的u-boot
  • 制作Debian rootfs包,安裝kernel和modules,
  • 提前在rootfs內(nèi)安裝ssh,wpasupplicant,firmware-realtek
  • 在rootfs中boot內(nèi)拷入修改好的script.fex和script.bin,刪除boot.cmd和boot.scr
  • 修改好rootfs中的etc/network/interfaces和wpa_supplicant.conf
  • 根據(jù)TF卡分一個區(qū)還是兩個區(qū),還有分區(qū)格式正確修改uEnv.txt

完成這些后,直接插上TF卡,連接上電源,設備會自動啟動并連接上配置好的無線網(wǎng)絡,并可以用ssh登陸,如果接上ttl線還可以通過com口終端登陸。上面這幾條說起來不多,但每條都是血淚經(jīng)驗。。。另外ttl線不是必須的,如果你每一步都操作正確,就不用通過ttl線查看輸出了。

下面分別介紹每個步驟,我是參照下述鏈接才能搭建成功,感謝為全志平臺貢獻力量的所有人!

步驟按照總體步驟提供的pdf進行修改和完善

1.環(huán)境準備

我使用了一個在VirtualBox下的ubuntu 12.04 64bit的虛擬機,構建步驟適用于sun5i平臺的A10s,A13的MK802 Android 4.0 miniPC。操作在root目錄下進行

  • 工作目錄為$WORK_DIR
  • 目標系統(tǒng)ROOTFS目錄為$ROOTFS_DIR
# WORK_DIR=/home/sharpbai/mk802_a10s
# ROOTFS_DIR=$WORK_DIR/chroot-armhf

標有#號的代表命令或文件內(nèi)容;因為頁幅限制,有的行末尾有”\” 折行符,表示該行尚未結束,在下一行繼續(xù)——所以折行符不算是命令或文件內(nèi)容的一部分。

1.1 下載必須的工具軟件

# apt-get install build-essential libncurses5-dev u-boot-tools qemu-user-static debootstrap git binfmt-support libusb-1.0-0-dev pkg-config
# apt-get install gcc-arm-linux-gnueabihf

1.2 下載源碼

從 github 下載 spl&u-boot、內(nèi)核源碼、sunxi 工具包等。注意內(nèi)核源碼超過 1.5G,耗時最長。如果曾經(jīng)下載過這些代碼,記得分別用 git pull 更新后再進行后續(xù)操作,因為代碼倉庫每天都有變化。

# cd $WORK_DIR
# git clone https://github.com/linux-sunxi/u-boot-sunxi.git
# git clone https://github.com/linux-sunxi/sunxi-tools.git
# git clone https://github.com/linux-sunxi/sunxi-boards.git
# git clone https://github.com/linux-sunxi/linux-sunxi.git

1.3 下載并配置Debian基礎系統(tǒng)

# mkdir $ROOTFS_DIR
# cd $ROOTFS_DIR
# debootstrap --foreign --arch armhf wheezy .
# cp /usr/bin/qemu-arm-static usr/bin/
# LC_ALL=C LANGUAGE=C LANG=C chroot . /debootstrap/debootstrap --second-stage
# LC_ALL=C LANGUAGE=C LANG=C chroot . dpkg --configure -a

到此為止,Debian 基礎系統(tǒng)已經(jīng)配置好了;現(xiàn)在可以把 $ROOTFS DIR 保存為一個壓縮包,以備日后之用。

# cd $ROOTFS_DIR
# tar -zcvf ../debian-rootfs-armhf-clean.tar.gz *

2 編譯組件

2.1 編譯 U-BOOT

# cd $WORK_DIR/u-boot-sunxi
# make distclean CROSS_COMPILE=arm-linux-gnueabihf-
# make mk802_a10s CROSS_COMPILE=arm-linux-gnueabihf-

2.2 編譯 sunxi-tools

# cd $WORK_DIR/sunxi-tools
# make

2.3 配置、編譯內(nèi)核

2.3.1 拷貝預設內(nèi)核配置文件

# cd $WORK_DIR/linux-sunxi
# wget https:///dl/a10/kernels/server-3.4/3.4.67-r0-s-rm2%2b/config-3.4.67-r0-s-rm2%2b.txt -O .config

2.3.2 配置內(nèi)核

由于.config文件是事先配置好的,所以無需大改,不用make menuconfig,只需要將平臺改變即可

以下操作為方便使用系統(tǒng)自帶的gedit,也可以使用vi,vim修改

# gedit .config

點擊 編輯 -> 首選項 -> 顯示行號

定位到第276行,將”CONFIG_ARCH_SUN4I=y”改為

# CONFIG_ARCH_SUN4I is not set

注意這里的#是需要輸入的并非提示符

滴277行,將”# CONFIG_ARCH_SUN5I is not set”改為

CONFIG_ARCH_SUN5I=y

2.3.3 編譯內(nèi)核

# make -j5 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

這里會提示有幾項新的配置需要選擇,碰到跟mail,g2d,debug和video有關的選項全部都選n,其余的選擇y即可

編譯過程很長,請耐心等待

3 建立 ROOTFS

# cd $ROOTFS_DIR

3.1 重要步驟

Debian rootfs基礎系統(tǒng)在前文中已經(jīng)下載安裝,現(xiàn)在需要進一步配置。首先且最重要的是設置管理員密碼和主機名稱

# chroot . passwd
# echo "MK802_Server" > etc/hostname
# echo "127.0.0.1 MK802_Server" >> etc/hosts

內(nèi)核模塊安裝,這是最關鍵步驟:

# cp $WORK_DIR/linux-sunxi/arch/arm/boot/uImage boot/
# make -C $WORK_DIR/linux-sunxi INSTALL_MOD_PATH=`pwd` ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install

設置串口調(diào)試終端參數(shù),如果你想使用串口進行調(diào)試,這是必要的:

# echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 >> etc/inittab
# echo deb http://http./debian/ wheezy main contrib non-free > etc/apt/sources.list
# echo deb http://security./ wheezy/updates main contrib non-free >> etc/apt/sources.list
# chroot . apt-get update
# chroot . apt-get upgrade

3.2 安裝必要組件

安裝 Open SSH Server,這將是你操控MK802最簡單方便的方式

# chroot . apt-get install openssh-server
# chroot . apt-get install locales
# echo "en_US.UTF-8 UTF-8" > etc/locale.gen
# echo "zh_CN.UTF-8 UTF-8" >> etc/locale.gen
# chroot . locale-gen
# chroot . apt-get install vim
# chroot . apt-get install wireless-tools wpasupplicant firmware-realtek

3.3 配置無線網(wǎng)絡

修改etc/network/networking

# echo " " >> etc/network/interfaces
# echo "auto wlan0" >> etc/network/interfaces
# echo "iface wlan0 inet dhcp " >> etc/network/interfaces
# echo "wpa-conf /etc/wpa_supplicant.conf" >> etc/network/interfaces

創(chuàng)建etc/wpa_supplicant.conf

注意,這里的SSID要替換成自己無線路由的名稱,KEY要替換成無線路由的密碼,如果有多個路由器可以重復操作此步驟添加多個無線路由配置

wpa_passphrase SSID KEY >> etc/wpa_supplicant.conf

3.4 生成并部署內(nèi)核啟動參數(shù)文件

這一步需要你在windows下使用adb來從MK802內(nèi)部提取script.bin并修改

script.bin和script.fex是內(nèi)核啟動時配置設備使用的文件,我們需要使用SDIO接口的無線網(wǎng)卡,而SDIO接口就是在這里初始化的

首先 下載A10的 adb driver  并安裝

然后 下載adb工具 并解壓

連接到MK802到電腦的的usb口

打開cmd,進入adb工具目錄,輸入

adb shell

如果成功會顯示root@android或類似信息

# mkdir /sdcard/nanda
# mount -t vfat /dev/block/nanda /sdcard/nanda
# exit
adb pull /sdcard/nanda/script.bin

將提取出的script.bin傳送到ubuntu虛擬機上,并復制到$WORK_DIR/sunxi-tools

再回到ubuntu虛擬機上操作,接下來生成script.fex

# cd $WORK_DIR/sunxi-tools
# ./bin2fex script.bin script.fex
# gedit script.fex

刪除與hdmi,video有關的配置節(jié)后保存

然后生成新的script.bin并復制到目標位置

# ./fex2bin script.fex script.bin
# cp script.fex $ROOTFS_DIR/boot/
# cp script.bin $ROOTFS_DIR/boot/

接下來進入$ROOTFS_DIR/boot目錄刪除不需要的文件

# cd $ROOTFS_DIR/boot
# rm boot.cmd
# rm boot.scr

3.5 配置u-boot啟動環(huán)境

最后修改(如果沒有就添加一個)uEnv.txt

uEnv.txt是設置內(nèi)核位置和設備配置文件等啟動命令的配置文件

# cd $ROOTFS_DIR
# gedit uEnv.txt
mmcboot=ext4load mmc 0 0x43000000 boot/script.bin; ext4load mmc 0 0x48000000 boot/uImage; bootm 0x48000000;
uenvcmd=run mmcboot
bootargs=console=ttyS0,115200 console=tty0 root=/dev/mmcblk0p1

這幾行的意思是,配置ttyS0串口和root目錄,加載mmc 0的ext4分區(qū)中的boot/script.bin配置到內(nèi)存0×43000000區(qū)域,加載mmc 0的ext分區(qū)中的boot/uImage內(nèi)核到內(nèi)存0×480000000,然后從0×48000000開始執(zhí)行內(nèi)核

到這里rootfs算是全部準備完畢了

4 安裝到TF卡

下面將存儲卡插入usb讀卡器,并在Virtualbox中分配給ubuntu虛擬機,在我的機器中,TF卡設備分配了/dev/sdb設備名,實際要視自己情況而定,一定要指定正確,指定錯誤將會錯誤覆蓋被指定的設備的數(shù)據(jù),造成不可挽回的數(shù)據(jù)丟失!

# CARD=/dev/sdb

4.1 安裝 u-boot

清空前面1M左右的數(shù)據(jù),為存放u-boot預留空間,然后在指定位置寫入u-boot

# cd $WORK_DIR/u-boot-sunxi
# dd if=/dev/zero of=$CARD bs=1k count=1024
# dd if=u-boot-sunxi-with-spl.bin of=$CARD bs=1024 seek=8

4.2 介質分區(qū)

使用fdisk將TF卡分成一個區(qū)即可,然后格式化成ext4格式

# fdisk $CARD
...(進行分區(qū)操作)...
# mkfs.ext4 ${CARD}1

4.3 部署rootfs

# cd $ROOTFS_DIR
# mount ${CARD}1 /mnt
# tar --exclude=qemu-arm-static -cf - . | tar -C /mnt -xvf -
# sync && umount /mnt

切記一定要等最后sync和umount完成后再拔出,否則復制數(shù)據(jù)會不完整

5 完成

將TF卡插入MK802中,如果你有ttl線的話連接好并打開終端,如果沒有的話,請登錄路由器dhcp管理頁面。插上電源,ttl應該立即輸出啟動信息并最后出現(xiàn)登錄界面,而在幾分鐘內(nèi)路由器dhcp管理頁面會顯示多了一個你的設備。接下來使用ssh連接到MK802,盡情享受吧~

通過ssh登錄成功

曬下我的MK802完成圖,打了個孔引出兩個內(nèi)部串口,外加一個USB hub

我的MK802完成圖,打了個孔引出兩個內(nèi)部串口,外加一個USB hub,點擊看大圖

我的MK802完成圖,打了個孔引出兩個內(nèi)部串口,外加一個USB hub,點擊看大圖

一點問題:貌似這個rtl8188cus網(wǎng)速不是很快,實測最高2M/s左右,如果對速度有特殊需求可以添加usb無線或有線網(wǎng)卡。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产av熟女一区二区三区蜜桃| 九九热在线视频观看最新| 国产又粗又深又猛又爽又黄| 国产一区二区三区精品免费| 欧美日韩国产一级91| 在线懂色一区二区三区精品| 国产一区二区三区色噜噜| 国产麻豆一线二线三线| 好吊日在线视频免费观看| 99久只有精品免费视频播放| 日韩精品一级片免费看| 精品视频一区二区不卡| 欧美日韩一级黄片免费观看| 精品熟女少妇一区二区三区| 中文字幕日产乱码一区二区| 最近中文字幕高清中文字幕无| 日韩高清中文字幕亚洲| 草草夜色精品国产噜噜竹菊| 污污黄黄的成年亚洲毛片| 高清免费在线不卡视频| 国产美女网红精品演绎| 亚洲欧美日韩综合在线成成| 中文字日产幕码三区国产| 色哟哟在线免费一区二区三区| 加勒比东京热拍拍一区二区| 天海翼高清二区三区在线| 日本不卡在线视频你懂的| 少妇被粗大进猛进出处故事| 高清在线精品一区二区| 国产精品一区二区三区日韩av| 成人你懂的在线免费视频| 国产又猛又大又长又粗| 欧美日韩亚洲精品内裤| 后入美臀少妇一区二区| 欧美日韩国产亚洲三级理论片 | 国产精品午夜福利免费阅读 | 欧美日韩欧美国产另类| 老熟妇2久久国内精品| 99久久精品午夜一区二区| 激情五月天深爱丁香婷婷| 视频在线播放你懂的一区|