Ubuntu 18.04をSDカードに正常にインストールしました。これを行うには、msdosパーティションテーブルを作成し(piはguidをサポートしません)、パーティション1のSDカードにU-Bootを配置します(fat32、piは他のものをサポートしません)。次に、パーティション1 /に pi-bootloader を貼り付けました。そして、ネットインストーラー(mini-iso)からそのパーティションにもファイルをコピーしました。プロセス全体がレイアウトされています ここ 。
すべてがSDカードで完璧に機能します。 UBootが起動し、net installer mini isoに付属のgrub2をロードします。次に、構成を変更して、パーティション3からLinuxカーネルをロードします(私の場合、p2はスワップです)。
そのため、私はそのイメージをプルして、USBドライブ(usbからm2 sataアダプター)に配置しました。だから、私はそれをオンにします。 Uブートが開始されますが、通常と何も変わりませんその後、grubをロードします。しかし、ubuntuを起動するか、インストールする(ネットインストーラーがまだ残っているため)オプションを備えたNiceメニューを表示する代わりに、grubコンソールに直接ダンプします。
ls Iと入力すると(memdisk)、それ以外は何も入力されません。それが実際にそれ自身からロードしたUSBドライブを見つけていないようです。そのmemdiskは(memdisk)/boot/grub/grub.cfgにある単一のファイルですが、実際に何が入っているかを知る方法はありません。編集:(memdisk)はsdカードにもありますが、同じ内容で、sdカードのパーティションもリストしていますが、フラッシュドライブにはありません。
GRUBモジュールはなく、何もありません。私はそれが非常に短い間エラーをフラッシュすると思いますが、その後grubコンソールが開き、それらのメッセージを読む時間がありません。
私は何をすべきか迷っています。おそらく here のようなusbモジュールを使用して独自のgrubイメージを作成した場合(grub-mkimageを使用して、memdisk内のモジュールでgrubイメージを作成します)?どのモジュールが必要か、またはそれが正しいアプローチであるかどうかはわかりませんが。
どんな助けも大歓迎です。
編集: this :が見つかりました
基本的に、grubがusbドライブを認識するためには、grubモジュール(私にはありません)が必要です。
簡単な答えは:
insmod usbms insmod ehci insmod uhci insmod ohci
必要なのは* hci行の1つだけです(通常はehci)が、古いマシンではuhciまたはohciのいずれかが必要になる場合があります。
これらの行は、非USBドライブの/ boot/grub /フォルダーのgrub.cfgまたはcustom.cfg(後者をお勧めします)に追加する必要があります。
here からモジュールを取得しましたが、usbmsはその中にはなく、[e、u、o] hciもありません。 this はgrubモジュールの作成について発見しましたが、混乱します。そして、ソースコードが見つかりません。 armhf 64ビットプロセッサのような奇妙なものを使用しても、互換性のあるソフトウェアを簡単に見つけることはできません。
Edit2:grubのソースコードを http://git.savannah.gnu.org/git/grub.git/ からダウンロードし、Raspberry Piでコンパイルしました。ただし、usbms.cおよびehci.cのソースコードファイルはありますが、grubモジュールにコンパイルしませんでした。
Grubモジュールの構築方法に関するこの情報を見つけました here ですが、私にはうまくいきません。 Makefile.core.amを変更して、usbms.moduleのifステートメントを削除してから、autogenとconfigureを実行しました。サイコロなし。 make usbms.moduleを使用してgrub-coreで手動でビルドしようとしましたが、gcc:fatal error:no input filesと表示されます。
グラブはいりません。 Ubuntu arm64を起動したいだけです。どうにかしてブートから直接そこにスキップできるなら、それは大丈夫です。
私の現在のアイデア:
私はそれらのいずれかを行う方法がわかりません。
Ubuntuをsdカードにインストールしてから、uboot(kernel8.img)を https://github.com/sakaki-/bcmrpi3-kernel のような新しいカーネルと交換できます。コマンドラインを設定します。 raspbianのようなtxt、たとえば
dwc_otg.lpm_enabled=0 root=PARTUUID=12345678-03 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
次に、たとえば、aspx config.txtをコピーします。
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835) dtparam=audio=on
program_usb_boot_mode=1
追加
dtoverlay=rpi-backlight
dtoverlay=rpi-ft5406
ft5406タッチスクリーンがあり、/ etc/modules-load.d/ft5406.confにカーネルモジュールをロードする場合は最後まで
rpi_backlight
rpi_ft5406
そして、それはちょうど動作します