Linux

在 STLinux 上編譯核心

  • February 27, 2021

我最近使用內置 shell 的 BusyBox v1.18.2 訪問了 STMicroelectronics Base Distribution。

我閱讀了 STLinux 紀錄片上關於我的問題的所有資訊,並遵循了所有步驟。

沒有目錄/home/STLinux,所以我只是創建了一個新目錄。

# Step 2

[root@stlinux]# cp -r /opt/STM/STLinux-X.X/devkit/sources/kernel/linux-sh4/  
BusyBox v1.18.2 (2011-07-13 20:52:52 CST) multi-call binary.

Usage: cp [OPTIONS] SOURCE DEST

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY

Options:
   -a  Same as -dpR
   -R,-r   Recurse
   -d,-P   Preserve symlinks (default if -R)
   -L  Follow all symlinks
   -H  Follow symlinks on command line
   -p  Preserve file attributes if possible
   -f  Overwrite
   -i  Prompt before overwrite
   -l,-s   Create (sym)links

   # Step 3        

   [root@stlinux]#cd /home/STLinux/linux-sh4 
   -sh: cd: can't cd to /home/STLinux/linux-sh4

   # Step 4

   [root@stlinux]#make ARCH=sh CROSS_COMPILE=sh4-linux- vmlinux 
   -sh: make: not found

  # Step 5

  [root@stlinux]#make ARCH=sh CROSS_COMPILE=sh4-linux- help | grep ^mb
  -sh: make: not found

  # All other steps were associated with make.

  # Step 9

  [root@stlinux]#find . | grep "\.ko$"
  [root@stlinux]#


  # Step 10

  [root@stlinux]# make ARCH=sh CROSS_COMPILE=sh4-linux- vmlinux
  -sh: make: not found

是否可以在沒有這些工具包的情況下建構核心?如果沒有,我如何在沒有任何包管理器的情況下安裝它們?

不幸的是,您無法在 STLinux 上為 STLinux 編譯核心。你不應該,至少。它們是資源有限的嵌入式設備。

您需要做的是在另一台(英特爾)機器上安裝或安裝 Linux,交叉編譯核心,然後將其複製到目標機器上。

順便說一句,交叉編譯是在不同架構的機器上建構二進製文件/工具的行為。

如果您查看文章中的 CROSS_COMPILE 指令,很明顯您所遵循的教程並不是為了直接在設備上使用而編寫的。

例如,我在 Debian Jessie 中交叉編譯了我的 ARM NetBSD 工具鏈、二進製文件和自定義核心。您必須使用本機開發工具建構工具包。

在那之後,似乎 STLinux 對工具包進行了一些補充;然後,您將使用交叉編譯器工具包的新編譯器和環境來生成本機二進製文件。

這裡有另一個相關的執行緒:如何在 linux DVR 上安裝另一個發行版

此外,我懷疑您是否會在不知道自己在做什麼的情況下成功編譯新核心。ARM/Mips 架構有一些與標準英特爾有很大不同的 kirks,而且這種中國設備通常會被大量入侵核心。

儘管如此,要對您的問題給出一個非常簡短的回答,不,您將無法在您的設備上編譯新核心。RAM 和磁碟通常非常有限,無法滿足開發需求。

引用自:https://unix.stackexchange.com/questions/281801