2017年9月29日 星期五

booting ipxe from pxelinux 設定摘要

/tftpboot 目錄下內容
/tftpboot/ipxe.lkrn
/tftpboot/pxelinux.0
/tftpboot/ldlinux.c32

/tftpboot/pxelinux.cfg/default 內容
DEFAULT ipxe
LABEL ipxe
menu default
kernel ipxe.lkrn :a cpair -b 0 -f 0 0 && dhcp || goto a && chain menu.ipxe

/tftpboot/menu.ipxe  內容
#!ipxe
shell

/etc/dnsmasq.conf 相關設定
dhcp-boot=pxelinux.0

2017年9月28日 星期四

ipxe chainload with dnsmasq 設定範例

dhcp-match=set:ipxe,175 # iPXE sends a 175 option.
dhcp-boot=tag:!ipxe,undionly.kpxe

dhcp-boot=http://192.168.10.1/menu.ipxe
# dhcp-boot=menu.ipxe

2017年9月22日 星期五

Linux ext2 image 加大空間

dd if=/dev/zero bs=1024 count=220000 >> fs.ext2
e2fsck -f fs.ext2
resize2fs fs.ext2

2017年9月20日 星期三

tftp timeout

1.查看 /var/log/ademon.log
connection refused from ...
tftpd: read(ack): Connection refused

2.檢查 /etc/hosts.*
/etc/hosts.deny
/etc/hosts.allow

3.檢查 iptables 相關模組
kernel 2.4.x
ip_conntrack_tftp
ip_nat_tftp

kernel 2.6.x
nf_nat_tftp
nf_conntrack_tftp
nf_conntrack

簡易 uClibc 開發環境

1.下載 https://www.uclibc.org/downloads/binaries/0.9.30.1/system-image-x86_64.tar.bz2

2.解開 system-image-x86_64.tar.bz2

3.mount -o loop image-x86_64.ext2 /mnt2

4.mount --bind src /mnt2/src

5.chroot /mnt2 /bin/sh

Bering-uClibc_6.0.5-x86_64 新增 fusion模組

0.下載 Bering-uClibc_6.0.5_src.tgz,安裝開發環境(https://bering-uclibc.zetam.org/wiki/Main_Page)

1. ./buildtool.pl -t x86_64-unknown-linux-uclibc source kernel

2../buildtool.pl -t x86_64-unknown-linux-uclibc build toolchain

3.解開initrd.lrp,編輯 ./source/x86_64-unknown-linux-uclibc/linux/Bering-4.4.config 加入
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LOGGING=y

4.建立 fusion modules
./buildtool.pl -t x86_64-unknown-linux-uclibc build kernel

5.修改 init 尋找 VERSION="`cat $LRPKG/initrd.version`" 加入
insmod /lib/modules/scsi_transport_spi.ko.gz
insmod /lib/modules/scsi_transport_sas.gz
insmod /lib/modules/mptbase.ko.gz
insmod /lib/modules/mptctl.ko.gz
insmod /lib/modules/mptscsih.ko.gz
insmod /lib/modules/mptspi.ko.gz

複製 上述 module 至 lib/modules中

6.封裝 initrd.lrp

2017年9月7日 星期四

Arch Linux 安裝摘要

0.光碟片開機

1.建立檔案系統
fdisk /dev/sda
mkfs.ext3 /dev/sda2

2.選定安裝的 mirror site
/etc/pacman.d/mirrorlist

3.建立基本系統
mount /dev/sda2 /mnt
pacstrap /mnt base

4.建立 fstab
genfstab -p /mnt >> /mnt/etc/fstab

5.設定系統組態(configuration)
arch-chroot /mnt

6.設定域名
echo 域名 > /etc/hostname

7.設定時區
ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime

8.產生語系設定檔及設定語系
echo en_US.UTF-8 >> /etc/locale.conf
locale-gen

9.產生kernel image
mkinitcio -p linux

10.安裝 grub
pacman -S grub

11.找尋已安裝的作業系統
pacman -S os-prober

12.產生 grub 設定檔
grub-mkconfig -o /boot/grub/grub.cfg

13.安裝 grub 開機檔案
BIOS 方式
grub-install /dev/sda

UEFI 方式
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug