跳到主要內容

網樂通編譯Kernel & modules

參考網址:
https://xiaolaba.wordpress.com/2012/10/20/ubuntu-12-10-stlinux-2-4/
http://www.twpda.com/2012/10/nextvod-compile-kernel.html
https://github.com/dlintw/kernel-pdk7105/tree/twpda

編譯環境:linuxmint-18-cinnamon-64bit


1.安裝STLinux 2.4



參考
https://xiaolaba.wordpress.com/2012/10/20/ubuntu-12-10-stlinux-2-4/

主要步驟為

下載 ISO 檔
mkdir STLinux
cd STLinux
wget ftp://ftp.stlinux.com/pub/stlinux/2.4/iso/STLinux-2.4-sh4-20121121.iso

掛載 ISO 檔
sudo mkdir /mnt/iso
sudo mount -o loop STLinux-2.4-sh4-20120822.iso /mnt/iso

安裝 STLinux
cd /mnt/iso
sudo ./installb --debian all-sh4-glibc

2.下載原始碼


cd ~/STLinux
wget https://github.com/dlintw/kernel-pdk7105/archive/twpda.zip
unzip twpda.zip


3.編譯


cd kernel-pdk7105-twpda
export PATH=$PATH:/opt/STM/STLinux-2.4/host/bin:/opt/STM/STLinux-2.4/devkit/sh4/bin
make mrproper
sh ./make.sh all



這邊整理一下我編譯出現的問題

1.build-essential 沒安裝
sudo apt-get install build-essential

2.make ARCH=sh CROSS_COMPILE=sh4-linux- menuconfig
出現ncurses問題
sudo apt-get install libncurses5-dev

3.
kernel/timeconst.h error 255
解決辦法:
將kernel/timeconst.pl中第373行的defined()去掉只留下@val就可以了

來源:
https://my.oschina.net/hanxiaodong/blog/755703

4.產生 vmlinux.ub 沒mkimage
sudo apt-get install u-boot-tools

手動產生
mkimage -A sh -O linux -T kernel -C gzip -a 0x80800000 -e 0x80801000  -n "Linux 2.6" -d vmlinux.bin.gz vmlinux.ub

Kernel 編出來的位子
arch/sh/boot/

modules 編出來的位子
lib/modules

留言

這個網誌中的熱門文章

小蟻智慧攝影機支援RTSP

來源: http://en.miui.com/thread-196713-1-1.html 小蟻智慧攝影機版本: 1.8.5.1l_201511061661(台灣版) 下載檔案 https://drive.google.com/file/d/0ByjBix7wpeJJY0ZWZXlvWl9Za1E/view?usp=sharing 把攝影機SD卡拿讀卡機讀取 把壓縮檔內的test資料夾放進SD根目錄 插回SD卡至攝影機 重開 攝影機會呈現橘燈並執行更新 等恢復至藍燈或是用app確認攝影機開啟 用VLC或相關程式讀取串流 Main stream:rtsp:// <CameraIP> :554/ch0_0.h264 Minor stream:rtsp:// <CameraIP> :554/ch0_1.h264 Audio stream:rtsp:// <CameraIP> :554/ch0_3.h264 Telnet與FTP開啟加上 # Telnet if [ ! -f "/etc/init.d/S88telnet" ]; then     echo "#!/bin/sh" > /etc/init.d/S88telnet     echo "telnetd &" >> /etc/init.d/S88telnet     chmod 755 /etc/init.d/S88telnet fi # FTP echo "#!/bin/sh" > /etc/init.d/S89ftp echo "tcpsvd -vE 0.0.0.0 21 ftpd -w / &" >> /etc/init.d/S89ftp chmod 755 /etc/init.d/S89ftp User:  root Password:  1234qwer 使用passwd改密碼 參考: http://en.miui.com/thread-224653-1-1.html

V-USB Joystick for Arduino

上次做好沒存檔 這次再翻出來從弄一次...QAQ 花了我一天阿阿阿阿 D+ 接腳2 D-  接腳3 詳情請看usbconfig.h 想改搖桿配置可以用 HID Descriptor Tool 改完記得回usbconfig.h填 USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 長度 程式碼: https://www.dropbox.com/s/n0rgkb370wto2lv/UsbJOY.rar?dl=0

Arduino Web Server DECodeURI

1. 架設一個簡單Web Server,以GET方式傳值發現傳入中文字收到的東西變得很不正常 原因是以GET傳值會進行ENCodeURI, 如 : http://192.168.137.177/?test= 送出 ENCodeURI : http://192.168.137.177/?test=%E9%80%81%E5%87%BA 2. 而 unicode utf-8是一種針對Unicode的可變長度字元編碼 在中文文字使用 3byte 表示 以 ” 送 ” 的 16 進位表示為 ” E9 80 81” 以 ” 出 ” 的 16 進位表示為 ” E5 87 BA” URL 編碼會把一個字元以 16 進制表示轉成兩個字元,然後在其前面放置轉義字元 ("%") ,編碼完後 ” 送 ” 為 ” %E9%80%81” 、 " 出 ” 為 %E5%87%BA 。 3. 把 ’%’ 去除並 把兩個 ASCII 字元為一組如 ”E9”, 轉換成一個以 16 進位 表示 E9一個 字元。 ASCII 的 ’A’ 為 65 , 16 進位 A 為 10 , ASCII 的 ’0’ 為 48 , 16 進位 0 為 0 , 當讀到大寫英文字母進行數字計算以 ’A’ 為首減掉 ’A’ 的 65 加 10 ,讀到數字以 ’0’ 為首減掉 ’0’ 的 48 即可轉換成 16 進位表示。 因為兩個字元為一組把先讀到的字元轉成 16 進位做左移 4BIT 即乘於 16 ,與下一個字元轉成 16 進位相加,組合出一個 byte 存入字串內。 String newstring; for(int i=0;i<outputString.length();i++) { if(outputString[i]=='%') { int temp; char tempchar=0; int test=16; for(int j=1;j<3;j++) { if(outputString[i+j]>='A') { temp=(int)(outputString...