Raspberry Pi 400 に archLinuxとMetaTrader５をインストールしてみます

MetaTrader５を RaspberryPi 400 で動かそうというメモです

---
準備
    Linuxのパソコン、できれば ArchLinux がベターです
    Paspberry Pi 400 に接続するUSBハブ
    USBハブに接続してArchLinuxを動かすためのSSDドライブ
    インターネットに接続できる環境

---
ArchLinuxのインストール
参考URL　https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4
ここに詳しく手順が説明されているので、ほぼその通りですが
パーティション１をアクティブ（ブート可能）に設定するのと
SWAPパーティションを作成しました
（普通はSWAPファイルを作成するのだと思いますが、古い人間なので、手法も古いです。）

ターミナルを起動します
ls /dev/sd* 

```
/dev/sda   /dev/sdb1  /dev/sdc2  /dev/sde   /dev/sdf   /dev/sdg1
/dev/sda1  /dev/sdb2  /dev/sdd   /dev/sde1  /dev/sdf1  /dev/sdg2
/dev/sda2  /dev/sdc   /dev/sdd1  /dev/sde2  /dev/sdf2
/dev/sdb   /dev/sdc1  /dev/sdd2  /dev/sde3  /dev/sdg
```

SSDをLinuxパソコンに接続します
ls /dev/sd* 
```/dev/sda   /dev/sdb1  /dev/sdc2  /dev/sde   /dev/sdf   /dev/sdg1  /dev/sdh2
/dev/sda1  /dev/sdb2  /dev/sdd   /dev/sde1  /dev/sdf1  /dev/sdg2
/dev/sda2  /dev/sdc   /dev/sdd1  /dev/sde2  /dev/sdf2  /dev/sdh
/dev/sdb   /dev/sdc1  /dev/sdd2  /dev/sde3  /dev/sdg   /dev/sdh1
/dev/sdh2
```

/dev/sdhが増えていますので、接続したディスクのデバイス名が/dev/sdhということが分かります

http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
からインストールパッケージをダウンロードします
インストールを開始します

ターミナルでコマンドを入力していきます
```
sudo -i
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
mkdir root boot
使用したSSDは１２０GBです
# fdisk /dev/sdh

fdisk (util-linux 2.39) へようこそ。                                                 
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。       
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): o
Created a new DOS (MBR) disklabel with disk identifier 0xc057f31c.

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (0 プライマリ, 0 拡張, 4 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): 

既定の回答 p であるものとみなします。
パーティション番号 (1-4, 既定値 1): 
最初のセクタ (2048-234441647, 既定値 2048): 
最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (2048-234441647, 既定値 234441647): +300M

新しいパーティション 1 をタイプ Linux、サイズ 300 MiB で作成しました。

コマンド (m でヘルプ): a
パーティション 1 を選択
パーティション 1 の起動フラグを有効にしました。

コマンド (m でヘルプ): t
パーティション 1 を選択
16 進数コード または別名 (L で利用可能なコードを一覧表示します): c
パーティションのタイプを 'Linux' から 'W95 FAT32 (LBA)' に変更しました。

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (1 プライマリ, 0 拡張, 3 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): p
パーティション番号 (2-4, 既定値 2): 
最初のセクタ (616448-234441647, 既定値 616448): 
最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (616448-234441647, 既定値 234441647): +106G

新しいパーティション 2 をタイプ Linux、サイズ 106 GiB で作成しました。

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (2 プライマリ, 0 拡張, 2 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): p
パーティション番号 (3,4, 既定値 3): 
最初のセクタ (222914560-234441647, 既定値 222914560): 
最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (222914560-234441647, 既定値 234441647): 

新しいパーティション 3 をタイプ Linux、サイズ 5.5 GiB で作成しました。

コマンド (m でヘルプ): t

パーティション番号 (1-3, 既定値 3): 
16 進数コード または別名 (L で利用可能なコードを一覧表示します): 82

パーティションのタイプを 'Linux' から 'Linux swap / Solaris' に変更しました。

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。

# mkfs.vfat /dev/sdh1
mkfs.fat 4.2 (2021-01-31)

# mkfs.ext4 /dev/sdh2
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 27787264 4k blocks and 6946816 inodes
Filesystem UUID: 08d26f31-e52f-46f1-a071-da899015b02e
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done 

# mount /dev/sdh1 boot
# mount /dev/sdh2 root
# bsdtar -xpf  ArchLinuxARM-rpi-aarch64-latest.tar.gz -C root
```
ちなみに　ls root で確認すると
```
# ls root
bin   dev  home  lost+found  opt   root  sbin  sys  usr
boot  etc  lib   mnt         proc  run   srv   tmp  var
```
展開されています
bootのインストールします
```
mv root/boot/* boot
```
boot の内容は
```
ls boot
Image                     bootcode.bin  fixup_cd.dat                  start4.elf
Image.gz                  config.txt    fixup_db.dat                  start4cd.elf
bcm2710-rpi-3-b-plus.dtb  dtbs          fixup_x.dat                   start4db.elf
bcm2710-rpi-3-b.dtb       fixup.dat     initramfs-linux-fallback.img  start4x.elf
bcm2710-rpi-cm3.dtb       fixup4.dat    initramfs-linux.img           start_cd.elf
bcm2711-rpi-4-b.dtb       fixup4cd.dat  kernel8.img                   start_db.elf
boot.scr                  fixup4db.dat  mkscr                         start_x.elf
boot.txt                  fixup4x.dat   start.elf
```

/etc/fstab を設定します
```
# vim root/etc/fstab
/dev/mmcblk0p1 を /dev/sda1 に変更します
SWAPの設定を追加します
/dev/sda3       swap    swap    defaults     0     0
保存します
```
X Windows のキーボードの設定ファイルが /etc/X11/xorg.conf.d/00-keyboard.conf にあるのでコピーしておきます
```
# cp xorg.conf.d/00-keyboard.conf root/home/alarm
#  chown 1000:1000  root/home/alarm/00-keyboard.conf 
```
マウント解除します
```
umount root boot
```
ディスクを取り外してラズパイに接続します

---
ArchLinuxの起動
電源スイッチを押して起動します
rootでログインしてセットアップしていきます
```
# pacman-key --init
# pacman-key --populate archlinuxarm
# pacman -Syyu
# pacman -S base-devel sudo git vim
# pacman -S --need xorg
# pacman -S --need lxqt xdg-utils ttf-freefont sddm
# pacman -S --need oxygen-icons breeze-icons firefox-i18n-ja thunderbird-i18n-ja leafpad archlinux-wallpaper
# systemctl enable sddm
# vim /etc/locale.gen
ja_JP.UTF-8 の行の先頭の#を削除し保存
# locale-gen
# vim /etc/locale.conf
LANG=ja_JP.UTF-8 に変更して保存
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# mv /home/alarm/00-keyboard.conf /etc/X11/xorg.conf.d/
```
日本語フォントは好みのものをインストールしてください
```
# pacman -S noto-fonts-cjk
```

再起動します
```
# reboot
```


---
wine の動作環境

wineの動作環境は
https://wiki.winehq.org/Building_Wine#Shared_WoW64
この Satisfying Build Dependencies の表を参考に　Needed for many applications と
 Rare or domain-specific のパッケージがインストールされていない場合、インストールします
alarm のユーザでログインします
alarm のユーザが sudo を使えるように設定します
```
su -
root のパスワードを入力します
visudo
下の方に root ALL=(ALL:ALL) ALL という行があるので
その下に　alarm ALL=(ALL:ALL) ALL を追加して保存します
```
不足分のパッケージをインストールします
```
sudo pacman -S gstreamer gst-plugins-base-libs vulkan-headers libgphoto2 smbclient
```


---
wine のインストール
https://gitlab.com/wine-ce/wine-ce/-/releases
から　V８.９をインストールします
インストール手順も説明されています
多分 ubuntu 向けのだと思って、ラズパイに ubuntu をインストールしてHPの手順でインストールしてみたのですが、MetaTrader５のインストールができませんでした
その代わりに Arch Linux にインストールしてみました

ダウンロードするファイルは wine-ce_core_8.9.0.aarch64.tar.xz 
wine-ce_dlls_8.9.0.all.tar.xz です

wine のフォントは　Windowsパソコンの C:\windows\Fonts をUSBメモリーでコピーしました

wineのインストール手順は
```
$ sudo bsdtar -Jxvf wine-ce_core_8.9.0.aarch64.tar.xz -C /opt/
$ sudo bsdtar -Jxvf wine-ce_dlls_8.9.0.all.tar.xz -C /opt/
$ sudo ln -sf /opt/wine-ce/bin/wine /usr/bin/wine
$ sudo ln -sf /opt/wine-ce/bin/winecfg /usr/bin/winecfg
```

---
MetaTrader５のダウンロード

https://www.metatrader5.com/ja
から　Windows向けダウンロード　をクリックしてダウンロードします

```
env WINEPREFIX=~/.wine-metatrader5 winecfg
```
Wine Mono Installer のメッセージが表示されますので Install を選択します
Wine configuration のウインドが表示されます
表示が日本語になっていませんが、動けばOKということで
USBメモリにコピーしたフォントを　.wine-metatrader5/drive_c/windows/Fonts にコピーします
env WINEPREFIX=~/.wine-metatrader5 wine　Download/mt5setup.exe
でMT5が起動します
今日は土曜日なのでレートの動きがないので本当に動いているか分かりませんが
昨日、インストールした時は注文も決済も遅いながらできました