Blog Code Forum

ArchLive

From Wiki.cyring.fr

(Difference between revisions)
Jump to: navigation, search
(Application shortcuts)
(Working directory)
 
(90 intermediate revisions not shown)
Line 1: Line 1:
-
=== Working directory ===
+
== Download ==
 +
=== Source files ===
 +
[http://code.cyring.fr/FTS/Source/LiveCD/releng.tgz releng.tgz]
 +
 
 +
== Working directory ==
 +
<syntaxhighlight lang="bash" line start="1">
 +
pacman -S archiso
 +
mkdir live
 +
chdir live
 +
cp -rv /usr/share/archiso/configs/releng/ .
 +
cd releng
 +
nano build.sh
 +
nano packages.both
 +
nano pacman.conf
 +
mkdir -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/
 +
</syntaxhighlight>
 +
 
 +
== Settings ==
 +
===== build.sh =====
 +
* modify the build script to suit your local time
<pre>
<pre>
-
# pacman -S archiso
+
#       ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
-
# mkdir live
+
        ln -sf /usr/share/zoneinfo/Europe/Paris ${work_dir}/root-image/etc/localtime
-
# chdir live
+
-
# cp -rv /usr/share/archiso/configs/releng/ .
+
-
# cd releng
+
-
# nano packages.both
+
-
# nano pacman.conf
+
-
# mkdir -p root-image/etc/modules-load.d
+
-
# nano root-image/etc/modules-load.d/archiso.conf
+
-
# mkdir -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
+
</pre>
</pre>
-
 
-
=== Settings ===
 
===== packages.both =====
===== packages.both =====
* add the following packages
* add the following packages
Line 30: Line 40:
chromium
chromium
cuda
cuda
 +
flashplugin
 +
gtk2
 +
hddtemp
 +
libvdpau
 +
lm_sensors
nvidia
nvidia
 +
pangox-compat
slim
slim
 +
xorg-server
xf86-video-vesa
xf86-video-vesa
xfce4
xfce4
 +
xfce4-xkb-plugin
</pre>
</pre>
-
 
===== pacman.conf =====
===== pacman.conf =====
<pre>
<pre>
Line 58: Line 75:
#SigLevel = PackageRequired
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
-
</pre>
 
-
===== archiso.conf =====
 
-
* modules required by CoreMod
 
-
<pre>
 
-
msr
 
-
dmi-sysfs
 
</pre>
</pre>
===== 10-evdev.conf =====
===== 10-evdev.conf =====
Line 128: Line 139:
===== slim.conf =====
===== slim.conf =====
<pre>
<pre>
-
# Path, X server and arguments (if needed)
 
-
# Note: -xauth $authfile is automatically appended
 
-
default_path        /bin:/usr/bin:/usr/local/bin
 
-
default_xserver    /usr/bin/X
 
-
xserver_arguments -nolisten tcp vt07
 
-
 
-
# Commands for halt, login, etc.
 
-
halt_cmd            /sbin/shutdown -h now
 
-
reboot_cmd          /sbin/shutdown -r now
 
-
console_cmd        /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
 
-
#suspend_cmd        /usr/sbin/suspend
 
-
 
-
# Full path to the xauth binary
 
-
xauth_path        /usr/bin/xauth
 
-
 
-
# Xauth file for server
 
-
authfile          /var/run/slim.auth
 
-
 
-
 
-
# Activate numlock when slim starts. Valid values: on|off
 
-
# numlock            on
 
-
 
-
# Hide the mouse cursor (note: does not work with some WMs).
 
-
# Valid values: true|false
 
-
# hidecursor          false
 
-
 
-
# This command is executed after a succesful login.
 
-
# you can place the %session and %theme variables
 
-
# to handle launching of specific commands in .xinitrc
 
-
# depending of chosen session and slim theme
 
-
#
 
-
# NOTE: if your system does not have bash you need
 
-
# to adjust the command according to your preferred shell,
 
-
# i.e. for freebsd use:
 
-
# login_cmd          exec /bin/sh - ~/.xinitrc %session
 
login_cmd          exec /bin/zsh -l ~/.xinitrc %session
login_cmd          exec /bin/zsh -l ~/.xinitrc %session
-
 
-
# Commands executed when starting and exiting a session.
 
-
# They can be used for registering a X11 session with
 
-
# sessreg. You can use the %user variable
 
-
#
 
-
# sessionstart_cmd some command
 
-
# sessionstop_cmd some command
 
-
 
-
# Start in daemon mode. Valid values: yes | no
 
-
# Note that this can be overriden by the command line
 
-
# options "-d" and "-nodaemon"
 
-
# daemon yes
 
-
 
-
# Available sessions (first one is the default).
 
-
# The current chosen session name is replaced in the login_cmd
 
-
# above, so your login command can handle different sessions.
 
-
# see the xinitrc.sample file shipped with slim sources
 
-
sessions            xfce4,icewm-session,wmaker,blackbox
 
-
 
-
# Executed when pressing F11 (requires imagemagick)
 
-
screenshot_cmd      import -window root /slim.png
 
-
 
-
# welcome message. Available variables: %host, %domain
 
-
welcome_msg        Welcome to %host
 
-
 
-
# Session message. Prepended to the session name when pressing F1
 
-
# session_msg        Session:
 
-
 
-
# shutdown / reboot messages
 
-
shutdown_msg      The system is halting...
 
-
reboot_msg        The system is rebooting...
 
-
 
-
# default user, leave blank or remove this line
 
-
# for avoid pre-loading the username.
 
default_user        root
default_user        root
-
 
-
# Focus the password field on start when default_user is set
 
-
# Set to "yes" to enable this feature
 
-
#focus_password      no
 
-
 
-
# Automatically login the default user (without entering
 
-
# the password. Set to "yes" to enable this feature
 
auto_login          yes
auto_login          yes
-
 
-
 
-
# current theme, use comma separated list to specify a set to
 
-
# randomly choose from
 
-
#current_theme      default
 
current_theme      archlinux-simplyblack
current_theme      archlinux-simplyblack
 +
</pre>
-
# Lock file
 
-
lockfile            /var/lock/slim.lock
 
-
 
-
# Log file
 
-
logfile            /var/log/slim.log
 
-
</pre>
 
===== display-manager.service =====
===== display-manager.service =====
<pre>
<pre>
Line 232: Line 157:
Alias=display-manager.service
Alias=display-manager.service
</pre>
</pre>
-
=== Desktop Environment ===
+
 
-
==== Xfce ====
+
== Desktop Environment ==
-
<pre>
+
=== Xfce ===
-
# wget https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.png -O root-image/root/archlinux-logo-dark-90dpi.png
+
<syntaxhighlight lang="bash" line start="1">
-
# mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
+
wget https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.png -O root-image/root/archlinux-logo-dark-90dpi.png
-
# nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
+
mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
-
</pre>
+
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
 +
</syntaxhighlight>
 +
===== xfce4-desktop.xml =====
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 264: Line 196:
</channel>
</channel>
</pre>
</pre>
-
<pre>
+
===== xfce4-panel.xml =====
-
# nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
+
* with application shorcuts
-
</pre>
+
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 315: Line 246:
       <property name="disable-tooltips" type="bool" value="false"/>
       <property name="disable-tooltips" type="bool" value="false"/>
     </property>
     </property>
-
     <property name="plugin-2" type="string" value="launcher">
+
     <property name="plugin-5" type="string" value="launcher">
       <property name="items" type="array">
       <property name="items" type="array">
         <value type="string" value="13526269274.desktop"/>
         <value type="string" value="13526269274.desktop"/>
       </property>
       </property>
     </property>
     </property>
 +
    <property name="plugin-2" type="string" value="xkb-plugin"/>
   </property>
   </property>
</channel>
</channel>
</pre>
</pre>
-
===== Terminal =====
+
* without application shortcuts
<pre>
<pre>
-
# mkdir -p root-image/root/.config/Terminal
+
<?xml version="1.0" encoding="UTF-8"?>
-
# nano terminalrc
+
 
 +
<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>
</pre>
</pre>
 +
===== helpers.rc =====
 +
<pre>
 +
WebBrowser=chromium
 +
</pre>
 +
===== xkb-plugin-2.rc =====
 +
<pre>
 +
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=
 +
</pre>
 +
===== xfce4-mixer.xml =====
 +
<pre>
 +
<?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>
 +
</pre>
 +
 +
=== Terminal ===
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/root/.config/Terminal
 +
nano root-image/root/.config/Terminal/terminalrc
 +
</syntaxhighlight>
 +
===== terminalrc =====
<pre>
<pre>
[Configuration]
[Configuration]
-
FontName=Monospace 10
+
FontName=Monospace 9
MiscAlwaysShowTabs=FALSE
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBell=FALSE
Line 336: Line 340:
MiscCursorBlinks=FALSE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
-
MiscDefaultGeometry=80x24
+
MiscDefaultGeometry=80x36
MiscInheritGeometry=FALSE
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMenubarDefault=FALSE
Line 347: Line 351:
MiscTabPosition=GTK_POS_TOP
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscHighlightUrls=TRUE
 +
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
 +
BackgroundDarkness=0.660000
</pre>
</pre>
-
==== Application shortcuts ====
+
=== Application shortcuts ===
-
===== Chrome =====
+
==== Chrome ====
 +
===== Common =====
* allow chrome to start as root using argument --user-data-dir
* allow chrome to start as root using argument --user-data-dir
-
<pre>
+
<syntaxhighlight lang="bash" line start="1">
-
# nano root-image/etc/chromium/default
+
mkdir root-image/etc/chromium
-
</pre>
+
nano root-image/etc/chromium/default
 +
</syntaxhighlight>
<pre>
<pre>
# Default settings for chromium. This file is sourced by /usr/bin/chromium
# Default settings for chromium. This file is sourced by /usr/bin/chromium
# Options to pass to chromium
# Options to pass to chromium
-
CHROMIUM_FLAGS="-user-data-dir=/tmp/"
+
CHROMIUM_FLAGS="-user-data-dir=/tmp/chromium"
-
</pre>
+
-
<pre>
+
-
# mkdir -p root-image/root/.config/xfce4/panel/launcher-6
+
-
# nano 13526260781.desktop
+
</pre>
</pre>
 +
 +
===== Button =====
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/root/.config/xfce4/panel/launcher-6
 +
nano root-image/root/.config/xfce4/panel/launcher-6/13526260781.desktop
 +
</syntaxhighlight>
<pre>
<pre>
[Desktop Entry]
[Desktop Entry]
Line 371: Line 381:
Name=Chrome
Name=Chrome
Comment=
Comment=
-
Exec=chromium --user-data-dir=/tmp/
+
Exec=chromium --user-data-dir=/tmp/chromium
Icon=chromium
Icon=chromium
Path=
Path=
Line 377: Line 387:
StartupNotify=false
StartupNotify=false
</pre>
</pre>
-
===== Blender =====
+
 
-
<pre>
+
==== Blender ====
-
# mkdir -p root-image/root/.config/xfce4/panel/launcher-2<br />
+
===== Button =====
-
# nano 13526269274.desktop
+
<syntaxhighlight lang="bash" line start="1">
-
</pre>
+
mkdir -p root-image/root/.config/xfce4/panel/launcher-5
 +
nano root-image/root/.config/xfce4/panel/launcher-5/13526269274.desktop
 +
</syntaxhighlight>
<pre>
<pre>
[Desktop Entry]
[Desktop Entry]
Line 395: Line 407:
</pre>
</pre>
-
=== Boot Loader ===
+
== User management ==
-
==== SysLinux ====
+
* (optional) define user passwords
 +
{| class="wikitable"
 +
|-
 +
! Login !! Passwd
 +
|-
 +
| root || <empty>
 +
|-
 +
| arch || <empty>
 +
|}
 +
<syntaxhighlight lang="bash" line start="1">
 +
## need some command here
 +
</syntaxhighlight>
 +
 
 +
== Boot Loader ==
 +
=== SysLinux ===
 +
==== Menu Desktop ====
* blacklist the ''nouveau'' module in favor of ''nvidia''
* blacklist the ''nouveau'' module in favor of ''nvidia''
* autologin with [https://wiki.archlinux.org/index.php/SLiM#Autologin SLiM]
* autologin with [https://wiki.archlinux.org/index.php/SLiM#Autologin SLiM]
 +
<syntaxhighlight lang="bash" line start="1">
 +
nano syslinux/archiso_sys.cfg
 +
</syntaxhighlight>
<pre>
<pre>
-
# 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%
</pre>
</pre>
 +
 +
==== Menu Console ====
 +
<syntaxhighlight lang="bash" line start="2">
 +
nano syslinux/archiso_two.cfg
 +
</syntaxhighlight>
<pre>
<pre>
-
LABEL arch
+
LABEL console
TEXT HELP
TEXT HELP
Boot the Arch Linux live medium. It allows you to install Arch Linux or
Boot the Arch Linux live medium. It allows you to install Arch Linux or
perform system maintenance.
perform system maintenance.
ENDTEXT
ENDTEXT
-
MENU LABEL Boot Arch Linux
+
MENU LABEL Arch Linux [^Console]
LINUX boot/%ARCH%/vmlinuz
LINUX boot/%ARCH%/vmlinuz
INITRD boot/%ARCH%/archiso.img
INITRD boot/%ARCH%/archiso.img
-
APPEND quiet modprobe.blacklist=nouveau systemd.unit=graphical.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+
APPEND quiet systemd.unit=multi-user.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
</pre>
</pre>
 +
* define a multi-boot menu
 +
<syntaxhighlight lang="bash" line start="3">
 +
nano syslinux/archiso_sys_inc.cfg
 +
</syntaxhighlight>
<pre>
<pre>
-
# nano syslinux/archiso_head.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
</pre>
</pre>
 +
* define the option [Desktop] as default
 +
<syntaxhighlight lang="bash" line start="4">
 +
nano syslinux/archiso_head.cfg
 +
</syntaxhighlight>
<pre>
<pre>
DEFAULT arch
DEFAULT arch
TIMEOUT 30
TIMEOUT 30
-
 
-
SERIAL 0 38400
 
-
UI boot/syslinux/vesamenu.c32
 
-
MENU TITLE Arch Linux
 
-
MENU BACKGROUND boot/syslinux/splash.png
 
-
 
-
MENU WIDTH 78
 
-
MENU MARGIN 4
 
-
MENU ROWS 6
 
-
MENU VSHIFT 10
 
-
MENU TABMSGROW 14
 
-
MENU CMDLINEROW 14
 
-
MENU HELPMSGROW 16
 
-
MENU HELPMSGENDROW 29
 
-
 
-
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
 
-
 
-
MENU COLOR border      30;44  #40ffffff #a0000000 std
 
-
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
 
-
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
 
-
MENU COLOR unsel        37;44  #50ffffff #a0000000 std
 
-
MENU COLOR help        37;40  #c0ffffff #a0000000 std
 
-
MENU COLOR timeout_msg  37;40  #80ffffff #00000000 std
 
-
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
 
-
MENU COLOR msg07        37;40  #90ffffff #a0000000 std
 
-
MENU COLOR tabmsg      31;40  #30ffffff #00000000 std
 
</pre>
</pre>
-
=== Build ===
+
== CoreMod ==
 +
<syntaxhighlight lang="bash" line start="1">
 +
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
 +
</syntaxhighlight>
 +
===== archiso.conf =====
 +
* modules claimed by CoreMod
<pre>
<pre>
-
# ./build.sh clean single
+
msr
-
# ./build.sh -v build single
+
dmi-sysfs
</pre>
</pre>
-
 
+
===== .zlogin =====
-
=== Test ===
+
-
* update the host syslinux configuration for a live test on computer
+
<pre>
<pre>
-
# cp -v out/archlinux-*-x86_64.iso /boot/
+
~/.automated_script.sh
-
# ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
+
prompt adam2
-
# nano /boot/syslinux/syslinux.cfg
+
</pre>
</pre>
 +
===== coremod.sh =====
 +
<pre>
 +
#!/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
 +
</pre>
 +
 +
== Build & Test ==
 +
* clean then build
 +
<syntaxhighlight lang="bash" line start="1">
 +
./build.sh clean single
 +
./build.sh -v build single
 +
</syntaxhighlight>
 +
 +
* update the host syslinux configuration for a live boot on computer
 +
<syntaxhighlight lang="bash" line start="1">
 +
cp -v out/archlinux-*-x86_64.iso /boot/
 +
ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
 +
nano /boot/syslinux/syslinux.cfg
 +
</syntaxhighlight>
<pre>
<pre>
LABEL cdrom
LABEL cdrom
Line 467: Line 542:
         APPEND iso raw
         APPEND iso raw
</pre>
</pre>
-
# reboot the computer and press [C] to boot the live CD
+
* reboot the computer and press [C] to boot the live CD
-
# open a Terminal and change to the directory CoreMod
+
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive002-300x225.png
-
# build & run CoreMod
+
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive003-300x225.png
-
<pre>
+
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive004-300x225.png
-
# mkdir ~/CoreMod
+
* if integrated, open a Terminal then build & run CoreMod
-
# wget http://code.cyring.fr/FTS/Source/C/CoreMod/Nightly_Build/2012-0.1.4/Makefile -O ~/CoreMod/Makefile
+
<syntaxhighlight lang="bash" line start="1">
-
# wget http://code.cyring.fr/FTS/Source/C/CoreMod/Nightly_Build/2012-0.1.4/coremod.c -O ~/CoreMod/coremod.c
+
./coremod.sh
-
# wget http://code.cyring.fr/FTS/Source/C/CoreMod/Nightly_Build/2012-0.1.4/coremod.h -O ~/CoreMod/coremod.h
+
</syntaxhighlight>
-
# cd ~/CoreMod
+
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive001-300x168.png
-
# make
+
-
# bin/coremod
+
-
</pre>
+

Latest revision as of 08:30, 18 December 2012

Contents

Download

Source files

releng.tgz

Working directory

  1. pacman -S archiso
  2. mkdir live
  3. chdir live
  4. cp -rv /usr/share/archiso/configs/releng/ .
  5. cd releng
  6. nano build.sh
  7. nano packages.both
  8. nano pacman.conf
  9. mkdir -p root-image/etc/X11/xorg.conf.d
  10. nano root-image/etc/X11/xorg.conf.d/10-evdev.conf
  11. mkdir -p root-image/etc/skel
  12. cp -v /etc/skel/.xinitrc root-image/etc/skel/
  13. nano root-image/etc/skel/.xinitrc
  14. chmod +x root-image/etc/skel/.xinitrc
  15. nano root-image/etc/slim.conf
  16. cp -v /etc/vconsole.conf root-image/etc/
  17. nano root-image/etc/systemd/system/display-manager.service
  18. 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

  1. wget https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.png -O root-image/root/archlinux-logo-dark-90dpi.png
  2. mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
  3. nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
  4. nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
  5. nano root-image/root/.config/xfce4/helpers.rc
  6. mkdir -p root-image/root/.config/xfce4/panel
  7. nano root-image/root/.config/xfce4/panel/xkb-plugin-2.rc
  8. 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

  1. mkdir -p root-image/root/.config/Terminal
  2. 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
  1. mkdir root-image/etc/chromium
  2. 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
  1. mkdir -p root-image/root/.config/xfce4/panel/launcher-6
  2. 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
  1. mkdir -p root-image/root/.config/xfce4/panel/launcher-5
  2. 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>
  1. ## need some command here

Boot Loader

SysLinux

Menu Desktop

  • blacklist the nouveau module in favor of nvidia
  • autologin with SLiM
  1. 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

  1. 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
  1. 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
  1. nano syslinux/archiso_head.cfg
DEFAULT arch
TIMEOUT 30

CoreMod

  1. mkdir -p root-image/etc/modules-load.d
  2. nano root-image/etc/modules-load.d/archiso.conf
  3. nano root-image/root/.zlogin
  4. nano root-image/root/coremod.sh
  5. 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
  1. ./build.sh clean single
  2. ./build.sh -v build single
  • update the host syslinux configuration for a live boot on computer
  1. cp -v out/archlinux-*-x86_64.iso /boot/
  2. ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
  3. 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

ArchLive002-300x225.png ArchLive003-300x225.png ArchLive004-300x225.png

  • if integrated, open a Terminal then build & run CoreMod
  1. ./coremod.sh

ArchLive001-300x168.png

Personal tools