ArchLive
De wiki.cyring.fr.
Sommaire |
Download
Source files
Working directory
pacman -S archisomkdir livechdir live
cp -rv /usr/share/archiso/configs/releng/ .
cd relengnano build.shnano packages.bothnano pacman.confmkdir -p root-image/etc/X11/xorg.conf.d
nano root-image/etc/X11/xorg.conf.d/10-evdev.conf
mkdir -p root-image/etc/skel
cp -v /etc/skel/.xinitrc root-image/etc/skel/
nano root-image/etc/skel/.xinitrc
chmod +x root-image/etc/skel/.xinitrc
nano root-image/etc/slim.conf
cp -v /etc/vconsole.conf root-image/etc/
nano root-image/etc/systemd/system/display-manager.service
cp -v /etc/systemd/system/multi-user.target.wants/ntpd.service root-image/etc/systemd/system/
Settings
build.sh
- modify the build script to suit your local time
# ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
ln -sf /usr/share/zoneinfo/Europe/Paris ${work_dir}/root-image/etc/localtime
packages.both
- add the following packages
archlinux-themes-slim base-devel blender chromium cuda flashplugin gtk2 hddtemp libvdpau lm_sensors nvidia pangox-compat slim xorg-server xf86-video-vesa xfce4 xfce4-xkb-plugin
pacman.conf
SigLevel = Never #[testing] #SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist [core] #SigLevel = PackageRequired Include = /etc/pacman.d/mirrorlist [extra] #SigLevel = PackageRequired Include = /etc/pacman.d/mirrorlist #[community-testing] #SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist [community] #SigLevel = PackageRequired Include = /etc/pacman.d/mirrorlist
10-evdev.conf
- remark : AZERTY keyboard
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "xkb_layout" "fr"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "SampleRate" "500"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
.xinitrc
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
# exec gnome-session
# exec startkde
exec startxfce4
# ...or the Window Manager of your choice
slim.conf
login_cmd exec /bin/zsh -l ~/.xinitrc %session default_user root auto_login yes current_theme archlinux-simplyblack
display-manager.service
[Unit] Description=SLiM Simple Login Manager After=systemd-user-sessions.service [Service] ExecStart=/usr/bin/slim -nodaemon [Install] Alias=display-manager.service
Desktop Environment
Xfce
wget https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.png -O root-image/root/archlinux-logo-dark-90dpi.png
mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
nano root-image/root/.config/xfce4/helpers.rc
mkdir -p root-image/root/.config/xfce4/panel
nano root-image/root/.config/xfce4/panel/xkb-plugin-2.rc
nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
xfce4-desktop.xml
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-desktop" version="1.0">
<property name="backdrop" type="empty">
<property name="screen0" type="empty">
<property name="monitor0" type="empty">
<property name="image-path" type="string" value="/root/archlinux-logo-dark-90dpi.png"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
<property name="last-single-image" type="string" value="/root/archlinux-logo-dark-90dpi.png"/>
<property name="image-style" type="int" value="1"/>
<property name="image-show" type="bool" value="true"/>
</property>
</property>
</property>
<property name="desktop-icons" type="empty">
<property name="icon-size" type="uint" value="32"/>
<property name="file-icons" type="empty">
<property name="show-home" type="bool" value="false"/>
<property name="show-filesystem" type="bool" value="false"/>
<property name="show-trash" type="bool" value="false"/>
</property>
</property>
</channel>
xfce4-panel.xml
- with application shorcuts
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="configver" type="int" value="2"/>
<property name="panels" type="array">
<value type="int" value="1"/>
<property name="panel-1" type="empty">
<property name="position" type="string" value="p=6;x=17;y=72"/>
<property name="mode" type="uint" value="1"/>
<property name="size" type="uint" value="48"/>
<property name="background-style" type="uint" value="1"/>
<property name="plugin-ids" type="array">
<value type="int" value="4"/>
<value type="int" value="3"/>
<value type="int" value="2"/>
<value type="int" value="6"/>
<value type="int" value="1"/>
</property>
<property name="position-locked" type="bool" value="true"/>
<property name="length" type="uint" value="100"/>
<property name="background-color" type="array">
<value type="uint" value="5911"/>
<value type="uint" value="35723"/>
<value type="uint" value="50629"/>
<value type="uint" value="65535"/>
</property>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="tasklist">
<property name="show-labels" type="bool" value="false"/>
<property name="show-handle" type="bool" value="false"/>
</property>
<property name="plugin-3" type="string" value="systray"/>
<property name="plugin-4" type="string" value="clock">
<property name="mode" type="uint" value="4"/>
<property name="show-frame" type="bool" value="false"/>
</property>
<property name="plugin-6" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="13526260781.desktop"/>
</property>
<property name="arrow-position" type="uint" value="0"/>
<property name="move-first" type="bool" value="false"/>
<property name="show-label" type="bool" value="false"/>
<property name="disable-tooltips" type="bool" value="false"/>
</property>
<property name="plugin-5" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="13526269274.desktop"/>
</property>
</property>
<property name="plugin-2" type="string" value="xkb-plugin"/>
</property>
</channel>
- without application shortcuts
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="configver" type="int" value="2"/>
<property name="panels" type="array">
<value type="int" value="1"/>
<property name="panel-1" type="empty">
<property name="position" type="string" value="p=6;x=17;y=72"/>
<property name="mode" type="uint" value="1"/>
<property name="size" type="uint" value="48"/>
<property name="background-style" type="uint" value="1"/>
<property name="plugin-ids" type="array">
<value type="int" value="4"/>
<value type="int" value="3"/>
<value type="int" value="2"/>
<value type="int" value="6"/>
<value type="int" value="1"/>
</property>
<property name="position-locked" type="bool" value="true"/>
<property name="length" type="uint" value="100"/>
<property name="background-color" type="array">
<value type="uint" value="5911"/>
<value type="uint" value="35723"/>
<value type="uint" value="50629"/>
<value type="uint" value="65535"/>
</property>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="tasklist">
<property name="show-labels" type="bool" value="false"/>
<property name="show-handle" type="bool" value="false"/>
</property>
<property name="plugin-3" type="string" value="systray"/>
<property name="plugin-4" type="string" value="clock">
<property name="mode" type="uint" value="4"/>
<property name="show-frame" type="bool" value="false"/>
</property>
<property name="plugin-2" type="string" value="xkb-plugin"/>
</property>
</channel>
helpers.rc
WebBrowser=chromium
xkb-plugin-2.rc
display_type=0 display_textsize=0 group_policy=2 default_group=0 never_modify_config=false model=evdev layouts=fr,us,de variants=,, toggle_option= compose_key_position=
xfce4-mixer.xml
<?xml version="1.0" encoding="UTF-8"?> <channel name="xfce4-mixer" version="1.0"> <property name="window-height" type="int" value="480"/> <property name="window-width" type="int" value="640"/> </channel>
Terminal
mkdir -p root-image/root/.config/Terminal
nano root-image/root/.config/Terminal/terminalrc
terminalrc
[Configuration] FontName=Monospace 9 MiscAlwaysShowTabs=FALSE MiscBell=FALSE MiscBordersDefault=TRUE MiscCursorBlinks=FALSE MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK MiscDefaultGeometry=80x36 MiscInheritGeometry=FALSE MiscMenubarDefault=FALSE MiscMouseAutohide=FALSE MiscToolbarsDefault=FALSE MiscConfirmClose=TRUE MiscCycleTabs=TRUE MiscTabCloseButtons=TRUE MiscTabCloseMiddleClick=TRUE MiscTabPosition=GTK_POS_TOP MiscHighlightUrls=TRUE BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT BackgroundDarkness=0.660000
Application shortcuts
Chrome
Common
- allow chrome to start as root using argument --user-data-dir
mkdir root-image/etc/chromium
nano root-image/etc/chromium/default
# Default settings for chromium. This file is sourced by /usr/bin/chromium # Options to pass to chromium CHROMIUM_FLAGS="-user-data-dir=/tmp/chromium"
Button
mkdir -p root-image/root/.config/xfce4/panel/launcher-6
nano root-image/root/.config/xfce4/panel/launcher-6/13526260781.desktop
[Desktop Entry] Version=1.0 Type=Application Name=Chrome Comment= Exec=chromium --user-data-dir=/tmp/chromium Icon=chromium Path= Terminal=false StartupNotify=false
Blender
Button
mkdir -p root-image/root/.config/xfce4/panel/launcher-5
nano root-image/root/.config/xfce4/panel/launcher-5/13526269274.desktop
[Desktop Entry] Version=1.0 Type=Application Name=Blender Comment= Exec=blender Icon=blender Path= Terminal=false StartupNotify=false
User management
- (optional) define user passwords
| Login | Passwd |
|---|---|
| root | <empty> |
| arch | <empty> |
## need some command here
Boot Loader
SysLinux
Menu Desktop
- blacklist the nouveau module in favor of nvidia
- autologin with SLiM
nano syslinux/archiso_sys.cfg
LABEL arch TEXT HELP Boot the Arch Linux live medium. It allows you to install Arch Linux or perform system maintenance. ENDTEXT MENU LABEL Arch Linux [^Desktop] LINUX boot/%ARCH%/vmlinuz INITRD boot/%ARCH%/archiso.img APPEND quiet vga=current modprobe.blacklist=nouveau systemd.unit=graphical.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
Menu Console
nano syslinux/archiso_two.cfg
LABEL console TEXT HELP Boot the Arch Linux live medium. It allows you to install Arch Linux or perform system maintenance. ENDTEXT MENU LABEL Arch Linux [^Console] LINUX boot/%ARCH%/vmlinuz INITRD boot/%ARCH%/archiso.img APPEND quiet systemd.unit=multi-user.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
- define a multi-boot menu
nano syslinux/archiso_sys_inc.cfg
INCLUDE boot/syslinux/archiso_head.cfg INCLUDE boot/syslinux/archiso_sys.cfg INCLUDE boot/syslinux/archiso_two.cfg INCLUDE boot/syslinux/archiso_tail.cfg
- define the option [Desktop] as default
nano syslinux/archiso_head.cfg
DEFAULT arch TIMEOUT 30
CoreMod
mkdir -p root-image/etc/modules-load.d
nano root-image/etc/modules-load.d/archiso.conf
nano root-image/root/.zlogin
nano root-image/root/coremod.sh
chmod +x root-image/root/coremod.sh
archiso.conf
- modules claimed by CoreMod
msr dmi-sysfs
.zlogin
~/.automated_script.sh prompt adam2
coremod.sh
#!/bin/bash
if [[ ! -d /opt/CoreMod ]]; then
echo -n 'Downloading ...'
mkdir /opt/CoreMod
cd /opt/CoreMod
wget -q -t 9 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/Makefile'
echo -n '.'
wget -q -t 6 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/coremod.c'
echo -n '.'
wget -q -t 6 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/coremod.h'
echo '.'
if [[ -e Makefile && -e coremod.c && -e coremod.h ]]; then
make
fi
cd
fi
if [[ -x /opt/CoreMod/bin/coremod ]]; then
/opt/CoreMod/bin/coremod
echo ''
else
echo 'CoreMod not found !'
fi
Build & Test
- clean then build
./build.sh clean single./build.sh -v build single
- update the host syslinux configuration for a live boot on computer
cp -v out/archlinux-*-x86_64.iso /boot/
ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
nano /boot/syslinux/syslinux.cfg
LABEL cdrom
MENU LABEL ^CD-ROM
LINUX memdisk
INITRD archlive.iso
APPEND iso raw
- reboot the computer and press [C] to boot the live CD
- if integrated, open a Terminal then build & run CoreMod
./coremod.sh