一名新鮮人與一名過來人的對話交流實錄。
採主題式回合交流編集。
$ sudo apt-get update
$ sudo apt-get install unzip git make g++ gcc flex bison libc6-dev libncurses5-dev libssl-dev bc
Download Raspberry Pi Imager to install Raspberry Pi OS
https://www.raspberrypi.com/software/
請安裝Raspberry Pi OS (64Bits)
$ git clone --depth=1 --branch rpi-6.6.y https://github.com/raspberrypi/linux.git
P.S. --depth=1
表示 git log
只拉最新一層 commit,不會下載整條 History ,以節省下載時間與容量。
$ unzip "MM6108 Linux Driver Release Package 1.12.4.zip"
$ cd "MM6108 Linux Driver Release Package 1.12.4/"
$ unzip morsemicro_kernel_patches_rel_1_12_4_2024_Jun_11.zip
$ cat morsemicro_kernel_patches_rel_1_12_4_2024_Jun_11/6.6.x/*.patch | patch -g0 -p1 -E -d ~/linux/
NOTE: patch
的選項說明: https://www.gnu.org/software/diffutils/manual/html_node/patch-Options.html
$ cd ~/linux/
$ KERNEL=kernel8
$ make ARCH=arm64 bcm2711_defconfig
$ sudo apt install crossbuild-essential-arm64
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
$ cd ~/MM6108\ Linux\ Driver\ Release\ Package\ 1.12.4/
$ unzip morsemicro_driver_rel_1_12_4_2024_Jun_11.zip
$ cd morsemicro_driver_rel_1_12_4_2024_Jun_11/
$ ...
(待後置的資料,先暫放此處)
Q: OpenWrt 是不是就是四大主軸,一編譯與刷機,二改硬體資訊如DTS, porting driver,三 OpenWrt 的網路設定(UCI setting),四改Web UI,只要這些都搞懂,是不是也就差不多了?
A: 是啊
OpenWrt 四大主軸:
理解一個事物有多個方式。一是從作者本人口述,一是從上而下的閱讀架構說明文件,另一是由下而上的探索式的自適應組織。
大多數的我們,從小接受學校教育,已經習慣以線性教材式的訓練課程來學習。
但面對陌生事物,且還沒有理想指引的環境下,採取探索式會更有效一些。
自己是採取 backtrace code 的方式,反向探索 LuCI 的架構。
訣竅門,針對要改的地方,在那裡觸發一次 backtrace 。
就會得到一份 function 樹狀關係圖切片。
從那個切片,就能反解出整個架構的部分情報,而且是直接跟目標相關的情報。
用這個方式,多改幾個地方,多了幾個角度切片,最終能一步步反解拼湊而掌握整體架構。
因此,上述找 button 的特徵,就是對 LuCI 的一次取樣切片。
過程中,可以找到對應的 module 跟檔案位置。
先讀 LuCI 的架構文件,有助於你框出問題的範圍。
但,初入手的人再怎麼縮框,也無法到很精確。
因此,我慣以針對性切片法下手。
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing