无忧启动论坛

标题: 自己定制Slitaz 5.0 [打印本页]

作者: 2010tljabc    时间: 2016-2-1 10:21
标题: 自己定制Slitaz 5.0
在别人的经验上,自己曾经定制过Slitaz4.0,比较成功,该Linux 小巧,完全内存运行,可以上网、看电影等。
自出现Slitaz5.0后,我也先后定制过,上网看电影也可以,但美中不足的是中文输入法的问题未得到解决,在
此希望各位大侠帮帮忙,看能不能解决此问题。现将我定制的过程供大家分享,定制过程如下:

本文是针对LiveCD - 开发版slitaz-RC-3.iso(slitaz-5.0-rc3.iso)进行的定制:
添加中文支持、中文输入法以及安装应用软件。
一、所需软件的下载
1、LiveCD - 开发版slitaz-RC-3.iso(slitaz-5.0-rc3.iso)下载地址:http://www.slitaz.org/cn/get/
2、grldr、grldr.mbr下载地址: http://grub4dos.chenall.net/
3、SISO下载地址: http://yun.baidu.com/share/link? ... 98012847#path=%252F
4、SISO使用说明: http://bbs.wuyou.net/forum.php?m ... p;page=1#pid2383133

二、启动Slitaz Linux
1、各种启动方式的结构及其所需文件
(ud)C:\grldr、grldr.mbr                              (Grldr方式)
(ud)C:\Boot\GRUB\message、SISO、USB_ACC.0PE、MENU.LST (Grldr方式)

C:\bootmgr                                       (bootmgr方式)
C:\Boot\BCD、boot.sdi、memtest.exe、BOOTSTAT.DAT  (bootmgr方式)
C:\Boot\Fonts\chs_boot.ttf、wgl4_boot.ttf        (bootmgr方式)
C:\Boot\zh-CN\bootmgr.exe.mui、memtest.exe.mui   (bootmgr方式)

C:\NTDETECT.COM、ntldr、bootfont.bin、boot.ini    (ntldr方式)

(ud)C:\Boot\ISO\win7pe.ISO                      (启动Win7PE-ISO方式)
(ud)C:\Boot\ISO\boot.WIM                        (启动Win7PE-WIM方式)
(ud)C:\Boot\ISO\Slitaz.iso        //Slitaz Linux 中文版(ISO方式)
(ud)C:\Boot\ISO\bzImage           //bzImage从Slitaz.iso解压出来
(ud)C:\Boot\ISO\rootfs.gz         //rootfs.gz从Slitaz.iso解压出来(gz方式)

2、在原启动系统中添加Grub启动方式
1)、在以NT5方式启动的WinXP系统中添加
在Boot.ini文件中的[operating systems]域内添加"C:\GRLDR=Grub 启动方式"
2)、在以NT6方式启动的Win7系统中添加
在BCD中添加实模式启动方式,将的grldr、grldr.mbr文件复制到C:\盘
3)、修改Grub的菜单中完成Slitaz的启动。
title 【01】 Slitaz Linux 中文版-ISO方式/Boot/iso/slitaz-5.0-rc3.iso
map --mem (bd)/Boot/iso/slitaz-5.0-rc3.iso  (0xff)
map --hook
chainloader  (0xff)
boot
title 【02】 Slitaz Linux 中文版-ISO方式/Boot/iso/slitaz-5.0-rc3.iso
SISO RUN --mem (bd)/Boot/iso/slitaz-5.0-rc3.iso

title 【03】  Slitaz Linux 中文版-gz方式/Boot/iso/rootfs.gz
# 将bzImage和rootfs.gz文件从slitaz-5.0-rc3.iso文件中提取出来存放在/Boot/iso/下
find  --set-root  --ignore-cd  /Boot/iso/bzImage
kernel (bd)/Boot/iso/bzImage root=/dev/null vga=normal autologin
initrd (bd)/Boot/iso/rootfs.gz

title 【04】 启动/Boot/iso/目录下*.iso *.img文件(菜单形式)
set showpath=1
set showdir=0
siso run --automenu-all show.iso.img subdir=2 /Boot/iso/ --end exit
#启动/Boot/Slitaz/目录下*.iso *.img文件(列表形式)
#siso run --autolist-all show.iso.img  subdir=2 /Boot/iso/ --end exit

查看支持的分辨率:915resolution -l
修改分辨率:915resolution 38 1280 800

二、Slitaz 的定制修改详细过程
1、下载矢量字体、中文locale、输入法及所需软件包
下载地址:http://mirror.switch.ch/ftp/mirror/slitaz/packages/5.0/
wqy-microhei-0.2.0-beta.tazpkg  文泉驿微米黑矢量字体
locale-zh_CN-5.0.tazpkg         中文locale
sudo-1.8.10p2.tazpkg            tux用户使用root权限

2、利用已下载的slitaz-5.0-rc3.iso,按照上面的方法启动到Slitaz linux系统,
在root权限的终端下运行ins5zh_CN.sh脚本,完成中文支持的安装。

####ins5zh_CN.sh内容开始####
#!/bin/sh
TDIR=`pwd`
if test $(id -u) != 0 ; then
        echo -e "该脚脚本需要root权限的终端下运行。"
        echo -e "请运行: subox sh ./`basename $0`或sudo sh ./`basename $0`"
        echo -e "或输入su(密码root)后运行: sh ./`basename $0` \n"
        exit 0
fi
ins(){
#本文是针对LiveCD - 开发版slitaz-RC-3.iso(slitaz-5.0-rc3.iso)进行的定制
#下载地址:http://www.slitaz.org/cn/get/
#矢量字体、中文locale、输入法及所需软件包
#下载地址:http://mirror.switch.ch/ftp/mirror/slitaz/packages/5.0/
#第一步:安装字体以及中文支持,修正时间(无网需下载所需tazpkg文件;联网状态将 -i改为 -gi)
tazpkg -i wqy-microhei-0.2.0-beta.tazpkg --forced
tazpkg -i locale-zh_CN-5.0.tazpkg  --forced
echo LANG=zh_CN > /etc/locale.conf
echo LC_ALL=zh_CN >> /etc/locale.conf
echo us > /etc/keymap.conf
echo Asia/Shanghai > /etc/TZ
echo "hwclock -l -s" >> /etc/init.d/local.sh
#删除无用包:alsaplayer、asunder、locale-de、locale-es、
#    locale-fr、locale-pt_BR、grub4dos-linux包
echo "Del alsaplayer、asunder、locale-de、locale-es、\
locale-fr、locale-pt_BR、grub4dos-linux OK!"
for i in alsaplayer asunder locale-de locale-es locale-fr \
      locale-pt_BR grub4dos-linux ; do
        echo y | tazpkg -r $i
done
##设置打开文件夹的右键
echo file:/// / >$TDIR/.gtk-bookmarks
echo file:///media /media >>$TDIR/.gtk-bookmarks
echo file:///mnt /mnt >>$TDIR/.gtk-bookmarks
echo file:///home/tux tux >>$TDIR/.gtk-bookmarks
cp -ar $TDIR/.gtk-bookmarks /root/.gtk-bookmarks
chown root:root /root/.gtk-bookmarks
chmod a=rwx /root/.gtk-bookmarks
#chmod 666 /root/.gtk-bookmarks
#删除除zh_CN外的语言,设置系统语言为zh_CN
echo "Del other language,set language=zh_CN OK!"
rm -rf /usr/share/i18n/locales/de* /usr/share/i18n/locales/es*
rm -rf /usr/share/i18n/locales/fr* /usr/share/i18n/locales/pt*
rm -rf /usr/share/i18n/locales/en_CA
tazbox  locale

tazpkg -i sudo-1.8.10p2.tazpkg --forced
#安装sudo-1.8.10p2.tazpkg需后在root权限下修改/etc/sudoers文件
#在root ALL=(ALL) ALL行后添加tux        ALL = NOPASSWD: ALL

#第二步:安装应用程序
mv prog/* ./
#1、安装应用程序(ins5prog.sh内容附后)
sh ./ins5prog.sh
#2、安装flashplayer插件flashplayer-11.2.tar.gz(insflash.sh内容附后)
sh ./insflash.sh
#3、安装自制工具mytool.tar.gz和修改后的配置文件myconf.tar.gz(ins5my.sh内容附后)
sh ./ins5my.sh

#修正时间日期
hwclock -l -s
#安装bash--无网需下载所需tazpkg文件;联网状态将 -i改为 -gi
for i in readline-6.3 bash-4.3.39; do
        tazpkg -i $i.tazpkg --forced
done

rm -rf prog *.tazpkg ins5prog.sh insflash.sh ins5my.sh ins5zh_CN.sh
echo "Change Slitaz 5.0 OK!"
}
ins | sed        -e s'/\[^Gm]*./ /g' -e s'/^=.*//' | \
      yad --text-info \
                        --width=480 --height=260 --center --on-top \
                        --title="Install Slitaz5.0 zh_CN" --window-icon=$icon \
                        --margins=4 --button="gtk-close:0"
exit 0
####ins5zh_CN.sh内容结束####
#------------------------------------------------------------------------------
####ins5prog.sh内容开始####
#!/bin/sh
TDIR=`pwd`
if test $(id -u) != 0 ; then
        echo -e "该脚脚本需要root权限的终端下运行。"
        echo -e "请运行: subox sh ./`basename $0`或sudo sh ./`basename $0`"
        echo -e "或输入su(密码root)后运行: sh ./`basename $0` \n"
        exit 0
fi
#应用程序下载地址http://mirror.slitaz.org/packages/5.0/
#1、安装音乐播放器deadbeef-0.5.6--无网需下载所需tazpkg文件;联网状态将 -i改为 -gi
for i in libsamplerate-0.1.8 deadbeef-0.5.6 ; do
        tazpkg -i $i.tazpkg --forced  
done
#2、安装iso镜像大师isomaster-1.3.13.tazpkg
tazpkg -i isomaster-1.3.13.tazpkg --forced
#3、安装文件属性查看file-5.22--无网需下载所需tazpkg文件;联网状态将 -i改为 -gi
for i in libmagic-5.22 file-5.22 ; do
        tazpkg -i $i.tazpkg --forced  
done
#4、安装网页浏览器midori-0.5.2--无网需下载所需tazpkg文件;联网状态将 -i改为 -gi
for i in libnotify-0.7.6 libunique-1.1.6 xorg-libXss-1.2.1 midori-0.5.2 ; do
        tazpkg -i $i.tazpkg --forced  
done
#5、安装视频播放器mplayer-1.1.1--无网需下载所需tazpkg文件;联网状态将 -i改为 -gi
tazpkg -i ./mplayer-1.1.tazpkg --forced
#此处 mplayer-1.1.tazpkg是将mplayer-1.1.1所需的tazpkg文件解压合并后重新打包生成的tazpkg文件。
#for i in xorg-libXv-1.0.8 libtheora-1.1.1 lame-3.99.4 giflib-4.1.6 enca-1.13 \
# libusb-1.0.18 libusb-compat-0.1.4 libftdi-0.18 libirman-0.4.5 ; do
#        tazpkg -i $i.tazpkg --forced  
#done
#for i in readline-6.3 libsndfile-1.0.23 libsamplerate-0.1.8 jack-audio-connection-kit-0.121.3 \
# portaudio-v19_20110326 lirc-0.9.0 audiofile-0.3.4  esound-0.2.41 libmng-1.0.10 \
# xvidcore-1.3.2 x264-20120522-2245 xorg-libXss-1.2.1 mplayer-1.1.1        ; do
#        tazpkg -i $i.tazpkg --forced  
#done
#echo Type=Application >>/usr/share/applications/mplayer.desktop

echo "Install slitaz 5.0 program OK!!!"
####ins5prog.sh内容结束####
#------------------------------------------------------------------------------
####insflash.sh内容开始####
#!/bin/sh
TDIR=`pwd`
if test $(id -u) != 0 ; then
        echo -e "该脚脚本需要root权限的终端下运行。"
        echo -e "请运行: subox sh ./`basename $0`或sudo sh ./`basename $0`"
        echo -e "或输入su(密码root)后运行: sh ./`basename $0` \n"
        exit 0
fi
#解压flashplayer-11.2.tar.gz文件
tar xzf ./flashplayer-11.2.tar.gz
cp -ar ./flashplayer-11.2/usr/* /usr/
#设置权限
chmod 755 /usr/share/flash/libflashplayer.so
chown root.root /usr/share/flash/libflashplayer.so

for i in /usr/lib/firefox/*.so ; do
          [ -f $i ] && [ -z "`ls /usr/lib/$(basename $i)`" ] && ln -sf $i /usr/lib/
done

[ -d /usr/lib/mozilla/plugins ] || mkdir -p /usr/lib/mozilla/plugins
ln -s /usr/share/flash/libflashplayer.so /usr/lib/mozilla/plugins

[ -d /usr/lib/opera/plugins ] || mkdir -p /usr/lib/opera/plugins
ln -s /usr/share/flash/libflashplayer.so /usr/lib/opera/plugins/libflashplayer.so

rm ./flashplayer-11.2 ./flashplayer-11.2.tar.gz -r -f

echo -e "Install Flashplayer-11.2 plugin OK!!\n"
####insflash.sh内容结束####
#------------------------------------------------------------------------------
####ins5my.sh内容开始####
#!/bin/sh
TDIR=`pwd`
if test $(id -u) != 0 ; then
        echo -e "该脚脚本需要root权限的终端下运行。"
        echo -e "请运行: subox sh ./`basename $0`或sudo sh ./`basename $0`"
        echo -e "或输入su(密码root)后运行: sh ./`basename $0` \n"
        exit 0
fi
#安装myconf.tar.gz(已修改好的开始菜单、右键菜单、desktop文件)
#生成myconf.tar.gz命令tar -ca myconf/* -f myconf.tar.gz
#解压myconf.tar.gz命令tar -xvf myconf.tar.gz
tar -xvf ./myconf.tar.gz
#修正tazusb打包后不能启动的错误
rm -rf /usr/bin/tazusb
cp -ar ./myconf/usr/bin/* /usr/bin/
chown root:root /usr/bin/tazusb
chmod u=rwx,g=rx,o=rx /usr/bin/tazusb
#修改开始菜单、右键菜单、desktop文件
rm -rf /home/tux/.config/lxpanel
rm -rf /home/tux/Desktop/slitaz-doc.desktop
cp -ar ./myconf/config/* /home/tux/.config/
cp -ar ./myconf/usr/share/applications/pcmanfm-root.desktop  /usr/share/applications/
cp -ar ./myconf/usr/share/icons/* /usr/share/icons/
#设置root用户的桌面、开始菜单栏与右键与tux用户一致
cp -ar /home/tux/.config /root/
echo "Install myconf.tar.gz OK!!!"
#---------------------------------------------------------------------------------------------------------------------------
#安装自制工具mytool.tar.gz(adsl\tazto\myrootfs),并修改其的权限
#生成mytool.tar.gz命令tar -ca mytool/* -f mytool.tar.gz
#解压mytool.tar.gz命令tar -xvf mytool.tar.gz
#adsl     网络设置工具:adsl、动态IP、静态IP、禁用IP(内容附后)
#tazto    根据tazusb修改的工具(tazto rootfs打包rootfs.gz)(内容附后)
#myrootfs 将当前系统打包成rootfs.gz(不需卸载硬盘)(内容附后)
tar -xvf ./mytool.tar.gz
cp -ar ./mytool/bin/* /usr/bin/
chown root:root /usr/bin/tazto
chmod u=rwx,g=rx,o=rx /usr/bin/tazto
chown root:root /usr/bin/adsl
chmod u=rwx,g=rx,o=rx /usr/bin/adsl
chown root:root /usr/bin/adsl1
chmod u=rwx,g=rx,o=rx /usr/bin/adsl1
chown root:root /usr/bin/myrootfs
chmod u=rwx,g=rx,o=rx /usr/bin/myrootfs
#chmod 755 /usr/bin/myrootfs
#添加常用网站打开方式
cp -ar ./mytool/desk/*.desktop /home/tux/Music/
rm -rf /usr/share/applications/ads*.desktop
mv /home/tux/Music/ads*.desktop /usr/share/applications/
#添加桌面背景图片
cp -ar ./mytool/images/* /usr/share/images/
cp -ar ./mytool/mirrors  /var/lib/tazpkg/
cp -ar ./mytool/oprootfs.sh /home/tux/
echo "Install mytool.tar.gz OK!!!"
#---------------------------------------------------------------------------------------------------------------------------
#在桌面添加deadbeef\midori\mplayer\adsl工具
cp -ar /usr/share/applications/deadbeef.desktop /home/tux/Desktop/
cp -ar /usr/share/applications/midori.desktop /home/tux/Desktop/
cp -ar /usr/share/applications/mplayer.desktop /home/tux/Desktop/
cp -ar /usr/share/applications/adsl.desktop /home/tux/Desktop/
rm -rf /home/tux/Desktop/slitaz-doc.desktop

rm -rf ./*.tar.gz ./mytool/
####ins5my.sh内容结束####
#------------------------------------------------------------------------------

第三步:修改开始菜单、右键快捷菜单及其中文显示
linux菜单由三个部分来完成。
menu文件:用来把desktop文件集中起来形成菜单的样式。
位置      全局:/etc/xdg/menus/applications.menu
              个人:~/.config/menus/
directory文件:用来描述菜单的目录层次结构,文件中name的值就是菜单项名称
          /usr/share/desktop-directories/*.directory
desktop文件:用来对应具体的应用程序,文件中Categories的值对应*.directory文件中name的值
          /usr/share/applications/*.desktop

开始菜单任务栏的位置(个人优先全局)
个人:/home/tux/.config/lxpanel/slitaz/panels/bottom
全局:/etc/lxpanel/slitaz/panels/bottom和panel

右键菜单的位置(个人优先全局)
个人:/home/tux/.config/openbox/menu.xml
全局:/etc/xdg/openbox/menu.xml

修改desktop文件(显示中文名称)
位置:          /usr/share/applications/*.desktop

将修改后的开始菜单、右键菜单以及desktop文件打包到myconf.tar.gz文件
生成myconf.tar.gz命令tar -ca myconf/* -f myconf.tar.gz
解压myconf.tar.gz命令tar -xvf myconf.tar.gz

第四步:添加应用程序
squashfs-4.3.tazpkg       md压缩解压工具
abiword2.8.6.tazpkg       办公软件

第五步:安装fcitx输入法(未通过)???????????????????
tazpkg -i libfcitx-4.1.2.tazpkg --forced
tazpkg -i fcitx-skin-default-4.1.2.tazpkg --forced
tazpkg -i fcitx-4.1.2.tazpkg --forced
#tazpkg get-install fcitx        #从镜像网站上下载fcitx输入法并安装
修改家目录下的.xinitrc文件,在开头加入
echo export LANG="zh_CN.UTF-8" >./tmpfc
echo export LC_ALL="zh_CN.UTF-8" >>./tmpfc
echo export LC_CTYPE="zh_CN.UTF-8" >>./tmpfc
echo export XMODIFIERS="@im=fcitx" >>./tmpfc
echo export QT_IM_MODULE=fcitx >>./tmpfc
echo export GTK_IM_MODULE=fcitx >>./tmpfc
echo "fcitx &" >>./tmpfc
cat ./.xinitrc >>tmpfc
rm -rf ./.xinitrc
mv ./tmpfc .xinitrc

第六步:将rootfs.gz打包进去iso
1、利用tazto脚本将修改后的当前文件系统打包成rootfs.gz(删除声卡和屏幕设置)进行测试通过。
2、利用myrootfs脚本将修改后的当前文件系统打包成rootfs.gz(删除声卡和屏幕设置)进行测试通过。
3、利用tazusb脚本将修改后的当前文件系统打包成rootfs.gz(删除声卡和屏幕设置)进行测试通过。
4、使用iso-master大师,双击打开原来的iso,在下框中进入boot,将原来
的rootfs.gz删掉,添加新的rootfs.gz到boot,最后另存为,搞定。

              ADSL/宽带账户拨号指南
先用root权限运行pppoe-setup设置好账号和密码及DNS域名服务器,
再用pppoe-start运行就能上网了。
第一步:用root权限运行pppoe-setup设置好账号和密码及DNS域名服务器
  1.Enter your PPPoE user name:输入您的ADSL/宽带账号:
  2.Enter the Ethernet interface connected to the DSL modem:选择网卡,用默认的eth0就可以了
  3.Enter the demand value:问你要不要设置空闲多少秒后自动断线的时间。用默认的no就可以了
  4.Enter the DNS information here:设置域名服务器的地址,这步很重要一定要设置。
        添入114.114.114.114,备用服务器地址填入61.139.2.69(202.98.96.68)
  5.Please enter your PPPoE password:请输入您账户的密码,会要求你输俩次
  6.Choose a type of firewall:选择防火墙的安全等级,选0就可以了
  7.Accept these settings and adjust configuration files:核对账号密码,DNS地址无误后,填y即可
第二步:运行pppoe-start
        运行pppoe-status  查看网络连接的状态。
        运行pppoe-stop    断开连接。
第三步:测试DNS是否连通:
      ping 114.114.114.114
      ping 61.139.2.69
      ping 202.98.96.68
第四步:解析外网是否连通
      nslookup www.baidu.com
注意:/etc/resolv.conf的权限问题,否则在root用户下能上网,tux用户下不能上网。

               mo文件的汉化
slitaz安装POEDIT后,提供了msgunfmt 用于将mo文件转化为po文件,po文件可
用文本编辑器打开汉化。或用poedit打开后进行汉化,保存后产生mo文件。
msgfmt用于将po文件转化为mo文件,xgettext用于产生脚本的po文件。
用法:
转换mo为po文件:msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/a.mo -o /usr/share/locale/zh_CN/LC_MESSAGES/a.po

转换po为mo文件:msgfmt -o /usr/share/locale/zh_CN/LC_MESSAGES/a.mo /usr/share/locale/zh_CN/LC_MESSAGES/a.po

创建po文件:  xgettext -d /usr/share/bin/a.po /usr/share/bin/a.sh]
需要脚本已作国际化的处理(我看slitaz中的脚本大部分已作国际化处理,只是部分按钮未作处理)。
创建po文件时可能需要将脚本重命名加上.sh的后缀(否则可能出错),生成po文件后改回原文件名。
如果直接在脚本文件中进行了部分汉化,会导致生成po文件时出错。


======================================================================================
######tazto的内容开始#####
#!/bin/sh
# Tazto - SliTaz Tool.
#保存位置/usr/bin/tazto
VERSION=4.0

# Tazlito configuration variables to be shorter
# and to use words rather than numbers.
COMMAND=$1
TOP_DIR=`pwd`
INITRAMFS=rootfs.gz
TMP_DIR=/tmp/tazlito-$$-$RANDOM

#####################
# Tazto functions #
#####################

# Print the usage.
usage (){
        echo -e "\nSliTaz Tool - Version: $VERSION\n
\033[1mUsage: \033[0m `basename $0` [command] [compression] [dir]
\033[1mCommands: \033[0m\n
    usage     显示这个简短的用法介绍
    rootfs    使用当前运行的系统生成rootfs.gz文件
                用法: `basename $0` rootfs
    mkrootfs  使用指定目录下的系统生成rootfs.gz文件
                用法: `basename $0` mkrootfs rootfs.gz 目录路径
    unrootfs  解压rootfs.gz文件到指定路径
                用法: `basename $0` unrootfs rootfs.gz [dir]
    mkmd      压缩文件夹为*.md文件
                用法: `basename $0` mkmd dir [*.md]
    unmd      解压*.md文件到指定路径
                用法: `basename $0` unmd *.md [dir]
    motopo    将.mo文件转化为.po文件,便于poedit进行汉化
                用法: `basename $0` motopo *.mo  [*.po]
    potomo    将.po文件转化为.mo文件
                用法: `basename $0` potomo *.po  [*.mo]
    addrar    将文件或文件夹压缩成.rar文件
                用法: `basename $0` addrar dir|file [*.rar]
    unrar     将.rar文件解压出来
                用法: `basename $0` unrar  *.rar  [dir|temp]\n\n"
}

# Status function.
status(){
        local CHECK=$?
        echo -en "\\033[70G[ "
        if [ $CHECK = 0 ]; then
                echo -en "\\033[1;33m成功"
        else
                echo -en "\\033[1;31m失败"
        fi
        echo -e "\\033[0;39m ]"
        return $CHECK
}

# Check if user is root.
check_root(){
        if test $(id -u) != 0 ; then
           echo -e "\n此选项需要root权限运行 `basename $0`."
           echo -e "请输入 su 和root密码成为超级用户.\n"
           exit 0
        fi
}

# Compression functions for writeiso.
write_rootfs(){
        echo -n "用lzma格式生成 rootfs.gz... "
        cat /tmp/list | cpio -o -H newc | lzma e -si -so > /rootfs.gz
   echo 1 > /tmp/rootfs
}

# Build initial rootfs for loram ISO ram
build_initfs(){
        urliso="mirror.slitaz.org mirror.switch.ch/ftp/mirror/slitaz \
download.tuxfamily.org/slitaz slitaz.c3sl.ufpr.br"
        version=$(ls $TMP_DIR/iso/boot/vmlinuz-* | sed 's/.*vmlinuz-//')
        mkdir -p $TMP_DIR/initfs/bin $TMP_DIR/initfs/dev $TMP_DIR/initfs/lib \
                 $TMP_DIR/initfs/mnt $TMP_DIR/initfs/proc $TMP_DIR/initfs/tmp $TMP_DIR/initfs/sys
        # bootfloppybox will need floppy.ko.gz, /dev/fd0, /dev/tty0
        cp /lib/modules/$version/kernel/drivers/block/floppy.ko.gz $TMP_DIR/initfs/lib 2> /dev/null
        cp -a /dev/tty0 /dev/fd0 $TMP_DIR/initfs/dev 2> /dev/null
        cp /lib/modules/$version/kernel/fs/aufs/aufs.ko.gz $TMP_DIR/initfs/lib
        cp /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.gz $TMP_DIR/initfs/lib
        cp /bin/busybox $TMP_DIR/initfs/bin
        for i in $($TMP_DIR/initfs/bin/busybox | awk \
          '{ if (s) printf "%s",$0 } /Currently/ { s=1 }' | sed 's/,//g'); do
                ln $TMP_DIR/initfs/bin/busybox $TMP_DIR/initfs/bin/$i
        done
        for i in /dev/console /dev/loop* /dev/null /dev/tty /dev/zero \
                 /dev/kmem /dev/mem /dev/random /dev/urandom; do
                cp -a $i $TMP_DIR/initfs/dev
        done
        for i in /lib/ld-* /lib/lib[cm].so* /lib/lib[cm]-* ; do
                cp -a $i $TMP_DIR/initfs/lib
        done
        cat > $TMP_DIR/initfs/init <<EOTEOT
#!/bin/sh


getarg()
{
        grep -q " \$1=" /proc/cmdline || return 1
        eval \$2=\$(sed "s/.* \$1=\\\\([^ ]*\\\\).*/\\\\1/" < /proc/cmdline)
        return 0
}

copy_rootfs()
{
        total=\$(grep MemTotal /proc/meminfo | sed 's/[^0-9]//g')
        need=\$(du -c \${path}rootfs* | tail -n 1 | cut -f1)
        [ \$(( \$total / \$need )) -gt 1 ] || return 1
        if ! grep -q " keep-loram" /proc/cmdline && cp \${path}rootfs* /mnt; then
                path=/mnt/
                return 0
        else
                rm -f /mnt/rootfs*
                return 1
        fi
}

echo "Switching / to tmpfs..."
mount -t proc proc /proc
size="\$(grep rootfssize= < /proc/cmdline | \\
        sed 's/.*rootfssize=\\([0-9]*[kmg%]\\).*/-o size=\\1/')"
[ -n "\$size" ] || size="-o size=90%"

if [ -x /bin/httpfs ]; then        # loram-http

while read var default; do
        eval \$var=\$default
        getarg \$var \$var
done <<EOT
eth        eth0
dns        61.139.2.69,218.2.139.200
netmask        255.255.255.0
gw
ip
EOT
if [ -n "\$ip" ]; then
        ifconfig \$eth \$ip netmask \$netmask up
        route add default gateway \$gw
        for i in \$(echo \$dns | sed 's/,/ /g'); do
                echo "nameserver \$i" >> /etc/resolv.conf
        done
else
        udhcpc -f -q -s /lib/udhcpc -i \$eth
fi
for i in $urliso ; do
        [ -n "\$URLISO" ] && URLISO="\$URLISO,"
        URLISO="\${URLISO}http://\$i/iso/\$(cat /etc/slitaz-release)/flavors/slitaz-loram-cdrom.iso,http://\$i/iso/\$(cat /etc/slitaz-release)/flavors/slitaz-\$(cat /etc/slitaz-release)-loram-cdrom.iso"
done
getarg urliso URLISO
DIR=fs
if getarg loram DIR; then
        DEVICE=\${DIR%,*}
        DIR=/\${DIR#*,}
fi
mount -t tmpfs \$size tmpfs /mnt
path2=/mnt/.httpfs/
path=/mnt/.cdrom/
mkdir -p /mnt/.rw \$path \$path2
while [ ! -d \$path/boot ]; do
        for i in \$(echo \$URLISO | sed 's/,/ /g'); do
                httpfs \$i \$path2 && break
        done
        mount -o loop,ro -t iso9660 \$path2/*.iso \$path
done
#copy_rootfs && umount -d \$path && umount -d \$path2

elif [ -f \$(echo /rootfs*.gz | cut -f1 -d' ') ]; then        # loram-ram

total=\$(grep MemTotal /proc/meminfo | sed 's/[^0-9]//g')
free=\$(grep MemFree /proc/meminfo | sed 's/[^0-9]//g')
if [ \$(( \$total/\$free )) -gt 1 ] || ! mount -t tmpfs \$size tmpfs /mnt; then
        echo "No tmpfs for /mnt"
        mkdir -p /mnt/.rw
        mount -t tmpfs tmpfs /mnt/.rw
        mkdir -p /mnt/.rw/mnt/.rw
        path=/
else
        mkdir -p /mnt/.rw
        path=/mnt/.
        for i in rootfs* ; do
                mv /\$i \$path\$i
        done
fi

else                                # loram-cdrom

getarg cdrom DRIVE_NAME ||
DRIVE_NAME=\$(grep "drive name" < /proc/sys/dev/cdrom/info | cut -f 3)
DEVICE=/dev/\$DRIVE_NAME
DIR=fs
if getarg loram DIR; then
        DEVICE=\${DIR%,*}
        DIR=/\${DIR#*,}
fi
mount -t tmpfs \$size tmpfs /mnt
mkdir -p /mnt/.rw /mnt/.cdrom /mnt/mnt/.cdrom
i=0
while [ \$i -lt 5 ] && ! mount -r \$DEVICE /mnt/.cdrom; do
        case "\$DEVICE" in
        /dev/sd*|UUID=*|LABEL=*)
                mount -t sysfs sysfs /sys
                USBDELAY=\$(cat /sys/module/usb_storage/parameters/delay_use)
                umount /sys
                sleep \$((1+\$USBDELAY)) ;;
        esac
        i=\$((i+1))
done
path=/mnt/.cdrom/
copy_rootfs && umount -d /mnt/.cdrom

fi

memfree=\$(grep MemFree /proc/meminfo | sed 's/[^0-9]//g')
umount /proc
branch=br=/mnt/.rw:/mnt/.cdrom/\$DIR
if [ ! -d /mnt/.cdrom/\$DIR/etc ]; then
branch=br=/mnt/.rw
for i in \${path}rootfs* ; do
        fs=\${i#*root}
        branch=\$branch:/mnt/.\$fs
        mkdir -p /mnt/.rw/mnt/.\$fs /mnt/.\$fs /mnt/.rw/mnt/.cdrom
        if [ -f /bin/cromfs-driver ]; then
                cromfs-driver \${path}root\$fs /mnt/.\$fs -o ro,dev,suid,allow_other
        else
                insmod /lib/squashfs.ko.gz 2> /dev/null
                mount -o loop,ro -t squashfs \${path}root\$fs /mnt/.\$fs
        fi
done
else
mkdir -p /mnt/.rw/mnt/.httpfs
fi
insmod /lib/aufs.ko.gz
mount -t aufs -o \$branch none /mnt
[ -x /bin/httpfs ] && sed -i 's/DHCP="yes"/DHCP="no"/' /mnt/etc/network.conf
[ \$memfree -lt 30000 ] && sed -i 's/ slim//' /mnt/etc/rcS.conf
[ -x /mnt/sbin/init ] && exec /bin/switch_root mnt /sbin/init || sh
EOTEOT
        chmod +x $TMP_DIR/initfs/init
        ( cd $TMP_DIR/initfs ; find | busybox cpio -o -H newc 2> /dev/null) | lzma e $TMP_DIR/initfs.gz -si
        rem=$(( $(stat -c "%s" $TMP_DIR/initfs.gz) % 4 ))
        [ $rem -ne 0 ] &&
        dd if=/dev/zero bs=1 count=$(( 4 - $rem )) >> $TMP_DIR/initfs.gz 2> /dev/null
        rm -rf $TMP_DIR/initfs
        rm -rf $TMP_DIR/iso
        return 0
}

# Move each initramfs to squashfs (or cromfs)
build_loram_rootfs()
{
        rootfs_sizes=""
        for i in $TMP_DIR/iso/boot/rootfs*.gz; do
                mkdir -p $TMP_DIR/fs
                cd $TMP_DIR/fs
                ( zcat $i 2> /dev/null || unlzma -c $i) | cpio -idm
                cd - > /dev/null
                rootfs=$TMP_DIR/$(basename $i)
                if [ -x /usr/bin/mkcromfs ]; then
                        /usr/bin/mkcromfs -qq -f 262144 -b 16384 $TMP_DIR/fs $rootfs
                else
                        /usr/sbin/mksquashfs $TMP_DIR/fs $rootfs -comp xz -Xbcj x86
                fi
                cd $TMP_DIR
                rootfs_sizes="$rootfs_sizes $(( $(du -s $TMP_DIR/fs | cut -f1) - $(du -s $rootfs | cut -f1) ))"
                ( cd $(dirname $rootfs); echo $(basename $rootfs) | cpio -o -H newc ) > $rootfs.cpio
                rm -f $rootfs
                mv $rootfs.cpio $rootfs
                cd - > /dev/null
                rm -rf $TMP_DIR/fs
        done
}


####################
# Tazto commands #
####################

case "$COMMAND" in
        rootfs)
#usage: tazto rootfs
                check_root
                # Start info
                echo ""
                echo -e "\033[1mWrite filesystem to rootfs.gz\033[0m
===============================================================================
命令rootfs将会把当前文件系统写入到相应cpio格式文件中(rootfs.gz)。
\e[40;31;1m注意:\033[0m \033[1;33m执行此命令时不要进行其他操作,否则rootfs.gz启动会失败!!\\033[0;39m

Archive compression: lzma"
                echo ""
               
                #Clear cache
                rm /var/cache/tazpkg/* /var/cache/fontconfig/* -r -f
                rm /var/cache/hald/* /var/log/*
                rm -rf /tmp/list

                # Optionally remove sound card selection and screen resolution.
                echo "想要清除声卡和屏幕设置选项吗 ? "
                echo -n "按 ENTER保持当前设置,或回答 (No|yes|exit): "
                read anser
                case $anser in
                        e|E|"exit"|Exit)
                                exit 0 ;;
                        y|Y|yes|Yes)
                                echo -n "删除当前声卡和屏幕设置..."
                                rm -f /var/lib/sound-card-driver
                                rm -f /etc/asound.state
                                rm -f /etc/X11/screen.conf
                                rm -f /etc/X11/xorg.conf ;;
                        *)
                                echo -n "保持当前声卡和屏幕设置..." ;;
                esac
                status
               
                cd /
                find bin etc init sbin var dev lib root usr home >/tmp/list
                for dir in proc sys tmp mnt media media/cdrom media/flash media/usbdisk
                do
                        echo $dir >>/tmp/list
                done

                # Generate initramfs with specified compression and display rootfs
                # size in realtime.
                rm -f /tmp/rootfs
                write_rootfs &

                sleep 2
                cd - > /dev/null
                echo -en "\n文件系统大小:"
                while [ ! -f /tmp/rootfs ]
                do
                        sleep 1
                        echo -en "\\033[18G`du -sh /rootfs.gz | awk '{print $1}'`    "
                done
                mv -f /rootfs.gz $TOP_DIR
                echo -en "\n[\\033[1;33mrootfs.gz\\033[0;39m]保存在 $TOP_DIR文件夹中\n\n"
        ;;

   mkrootfs)
# usage: tazto mkrootfs rootfs.gz [path]
        check_root
        echo "正在将$TOP_DIR/$3目录压缩为$2文件..."
        if [ ! -d "$TOP_DIR/$3" ] ; then
                echo -e "\n未能找到$TOP_DIR/$3目录...\n"
                exit 0
        fi
        ( cd $TOP_DIR/$3;find | busybox cpio -o -H newc)|lzma e $2 -si
        echo -en "\n[\\033[1;33m$TOP_DIR/$3\\033[0;39m]已成功压缩成 $2文件\n\n"
        ;;

    unrootfs)
# extract rootfs.gz somewhere
# usage: tazto unrootfs rootfs.gz [dir]
                check_root
                if [ -n "$3" ] ; then
                        TARGET=$3
                else
                        TARGET=$TOP_DIR/rootfs
                fi
                mkdir -p $TARGET
                (zcat $2 || unlzma -c $2 || cat $2) 2>/dev/null | (cd $TARGET; cpio -idm > /dev/null)
                echo -en "\n[\\033[1;33m$2\\033[0;39m]已成功解压到 $TARGET文件夹中\n\n"
        ;;

        unmd)
# usage: tazto unmd  *.md [dir]
        if [ ! -f "/usr/bin/unsquashfs" ] ; then
                echo -e "\n未能找到/usr/bin/unsquashfs文件...\n"
                usage
                exit 0
        fi
        if [ -n "$2" ] ; then
                rm -rf /home/tux/squashfs-root/
                /usr/bin/unsquashfs $2
                echo "已将$2文件解压$TOP_DIR/squashfs-root文件夹。"
        else
                usage
                exit 0
        fi
        ;;
       
        mkmd)
# usage: tazto mkmd dir [*.md]
        if [ ! -f "/usr/bin/mksquashfs" ] ; then
                echo -e "\n未能找到/usr/bin/mksquashfs文件...\n"
                usage
                exit 0
        fi
        if [ -n "$3" ] ; then
                TAR=$3
        else
                if [ -n "$2" ] ; then
                        TAR=$2.md
                else
                        usage
                        exit 0
                fi
        fi
        /usr/bin/mksquashfs $2 $TAR -comp xz
        echo "已将$2文件夹压缩为$TAR文件."
        ;;

        motopo)
# usage: tazto motopo *.mo  [*.po]
        if [ ! -f "/usr/bin/msgunfmt" ] ; then
                echo -e "\n未能找到/usr/bin/msgunfmt文件...\n"
                usage
                exit 0
        fi
        if [ -n "$3" ] ; then
                TAR=$3
        else
                if [ -n "$2" ] ; then
                        TAR=$2.po
                else
                        usage
                        exit 0
                fi
        fi
        /usr/bin/msgunfmt $2 -o $TAR
        echo "已将$2文件转化为$TAR文件。"
        ;;

        potomo)
# usage: tazto potomo *.po  [*.mo]
        if [ ! -f "/usr/bin/msgfmt" ] ; then
                echo -e "\n未能找到/usr/bin/msgfmt文件...\n"
                usage
                exit 0
        fi
        if [ -n "$3" ] ; then
                TAR=$3
        else
                if [ -n "$2" ] ; then
                        TAR=$2.mo
                else
                        usage
                        exit 0
                fi
        fi
        /usr/bin/msgfmt $2 -o $TAR
        echo "已将$2文件转化为$TAR文件。"
        ;;

        addrar)
# usage: tazto addrar dir|file [*.rar]
        if [ ! -f "/usr/bin/rar" ] ; then
                echo -e "\n未能找到/usr/bin/rar文件...\n"
                usage
                exit 0
        fi
        if [ -n "$3" ] ; then
                TAR=$3
        else
                if [ -n "$2" ] ; then
                        TAR=$2.rar
                else
                        usage
                        exit 0
                fi
        fi
        /usr/bin/rar a $TAR $2
        echo "已将$2文件或文件夹压缩成$TAR文件。"
        ;;

        unrar)
# usage: tazto unrar  *.rar  [dir|temp]
        if [ ! -f "/usr/bin/unrar" ] ; then
                echo -e "\n未能找到/usr/bin/rar文件...\n"
                usage
                exit 0
        fi
        if [ -n "$3" ] ; then
                TAR=$3
        else
                if [ -n "$2" ] ; then
                        TAR=temp
                else
                        usage
                        exit 0
                fi
        fi
   if [ ! -d "$TAR" ] ; then
      mkdir -p $TAR
        fi
        /usr/bin/unrar e $2 $TAR
        echo "已将$2文件解压到$TAR文件夹。"
        ;;

        usage|*)
# Clear and print usage also for all unknown commands.
#
                clear
                usage ;;
esac

exit 0
####tazto的内容结束####
======================================================================================
####adsl脚本开始#############################################
#!/bin/sh
#***********************************************************************
#保存位置/usr/sbin/adsl
# pppoe-setup
#
# All-purpose slicing/dicing shell script to configure rp-pppoe.
#
# LIC: GPL
#
# Copyright (C) 2000 Roaring Penguin Software Inc.
#
# $Id$
#***********************************************************************

# Check if user is root.
if test $(id -u) != 0 ; then
   echo -e "\e[31;40;1m对不起,你不能运行`basename $0`.
        请使用sudo `basename $0`或
        使用'su'命令(密码root)切换到root用户.\033[0m"
   exit 0
fi

# From AUTOCONF
prefix=/usr
exec_prefix=${prefix}

# Paths to programs
IFCONFIG=/sbin/ifconfig
PPPD=/usr/sbin/pppd
PPPOE=${exec_prefix}/sbin/pppoe
ECHO=/bin/echo
LOGGER="/usr/bin/logger -t `basename $0`"

# Set to "C" locale so we can parse messages from commands
LANG=C
export LANG
CONFIG=/etc/ppp/pppoe.conf

# Set default interface.
INTERFACE="eth0"
NETMASK="255.255.255.0"

# Protect created files
umask 077

copy() {
    cp $1 $2
    if [ "$?" != 0 ] ; then
        $ECHO "*** Error copying $1 to $2"
        $ECHO "*** Quitting."
        exit 1
    fi
}
setip(){
# 静态获取IP地址
   ifconfig $INTERFACE up
   echo -e "\e[40;36;1m请输入要设置的IP地址(默认10.32.0.119):\033[0m"
   printf "%s" ">>> : "
   read IP
   if [ "$IP" = "" ]  ; then
        IP="10.32.0.119"
   fi
   echo -e "\e[40;36;1m请输入要设置的网关IP地址(默认10.32.0.1):\033[0m"
   printf "%s" ">>> : "
   read GATEWAY
   if [ "$GATEWAY" = "" ]  ; then
        GATEWAY="10.32.0.1"
   fi
   echo "设置的IP地址为:$IP    网关IP地址:$GATEWAY"
   ifconfig $INTERFACE up
   ifconfig $INTERFACE $IP netmask $NETMASK up
   route add default gateway $GATEWAY
   echo "测试网络连接情况......"
   if [ "$IP" != "" ]  ; then
        ping -c 3 $IP
   fi
   if [ "$GATEWAY" != "" ]  ; then
        ping -c 3 $GATEWAY
   fi
   setdns
}      

setdns(){
# 设置路由DNS地址
   echo   显示网络连接情况
   ifconfig -a
   echo   查看路由表信息
   netstat -nr
   echo -e "路由配置文件为:\e[40;36;1m/etc/resolv.conf\033[0m"
   echo -e "\e[40;36;1m请输入DNS地址(默认61.139.2.69  114.114.114.114):\033[0m"
   printf "%s" ">>> : "
   read DNS_SERVER
   if [ "$DNS_SERVER" = "" ]  ; then
       DNS_SERVER="61.139.2.69 114.114.114.114"
   fi
   mv /etc/resolv.conf /tmp/resolv.conf.$$
   for NS in $DNS_SERVER ; do
       ping -c 3 $NS
       echo "nameserver $NS" >> /etc/resolv.conf
   done
   chmod 644  /etc/resolv.conf
   echo   解析外网   
   nslookup www.slitaz.org   
}

####初始操作选单开始
adsl(){
while [ true ] ; do
    $ECHO ""
    $ECHO "    功能选单"
    $ECHO -e "\e[40;32;1m  ==========================================="
    $ECHO "    1 - 配置ADSL      3 - 停止ADSL"
    $ECHO "    2 - 重启ADSL      4 - 查看ADSL连接状态"
    $ECHO "    5 - 设置 DNS 地址(测试网络连接情况)"
    echo -e "    --------------------------------------"
    echo "    6 - 动态获取IP地址  7 - 静态获取IP地址"
    echo "    8 - 禁用网络        9 - 重启网络"
    echo "    0 - 退出(q)         c = 清屏"   
    echo -e "  ===========================================\033[0m"   
   
   
    $ECHO -e "\e[40;31;1m    请输入(1,2,3,4,5,6,7,8,9,0):\033[0m"
    printf "%s" ">>> : "
    read aa
    case "$aa" in
    1)
    # 配置ADSL
       break ;;
    2)
    # 重启ADSL
       echo -e "ADSL配置文件为:\e[40;36;1m/etc/ppp/\033[0m下\e[40;31;1mchap-secrets、pap-secrets、pppoe.conf\033[0m"
       pppoe-stop
       ifconfig $INTERFACE down
       killall -q udhcpc
       pppoe-start
       udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
       setdns               
       adsl ;;
    3)
       pppoe-stop
       adsl ;;
    4)
       pppoe-status
       adsl ;;
    5)
     # 设置路由DNS地址
       setdns
       adsl ;;
    6)
    # 动态获取IP地址
      udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
      adsl ;;
    7)
    # 静态获取IP地址
      setip
      adsl;;
    8)
    # 禁用网络
      ifconfig $INTERFACE down
      killall udhcpc
      adsl  ;;
    9)
    # 重新启动网络 Config file is: /etc/network.conf
       echo -e "网络配置文件为:\e[40;36;1m/etc/network.conf\033[0m"
       ifconfig lo down
       ifconfig \$INTERFACE down
       . /etc/init.d/network.sh
       adsl;;      
    c|C|clear|Clear|cls|Cls)
       clear ;;   
    0|q|Q|quit|Quit|E|e|exit|Exit)
       exit 0   ;;  
   esac
done   
}


adsl
#初始操作选单结束
while [ -e /etc/ppp/ppp.lock ] ; do
   $ECHO -e "\e[40;33;1m你已经配置过ADSL了,重新配置请输入\e[40;31;1my\e[40;33;1m,不再重新配置请输入\e[40;31;1mn\033[0m"
   printf "%s" '>>> : '
   read ANS2
   case "ANS2" in
      Y|y|yes|Yes|oui|Oui)
          ANS2=y  ;;
      N|n|no|No|non|Non)
          ANS2=n ;;
   esac
   if [ "$ANS2" = "y" -o "$ANS2" = "n" ] ; then
     break
   fi
done
if [ "$ANS2" = "n" ] ; then
   adsl
fi

#检测重复设置完毕
clear
$ECHO -e "\e[33;40;1m 欢迎使用 Roaring Penguin PPPoE 客户端安装.  首先, 我会运行"
$ECHO -e "\033[33;40m 一些检查在您的系统上确保 PPPoE 客户端安装与否。\033[0m"
$ECHO ""

# Must be root
if [ "`/usr/bin/id -u`" != 0 ] ; then
    $ECHO -e "\e[31;40;1m对不起,你必须先切换为root用户\033[0m"
    exit 1
fi

# Prototype config file must exist
if [ ! -r "$CONFIG" ] ; then
    $ECHO -e "\e[31;40;1m没有找到'$CONFIG' 文件,请重新安装 PPPoE 客户端.\033[0m"
    exit 1
fi

# Must have pppd
if [ ! -x $PPPD ] ; then
    $ECHO -e "\e[31;40;1m没有找到'$PPPD'程序,请安装PPP 2.3.10或以后版本软件.\033[0m"
    exit 1
fi
export CONFIG
. $CONFIG

if [ "$DEMAND" = "" ] ; then
    DEMAND=no
fi

# pppoe must exist
if [ ! -x "$PPPOE" ] ; then
    $ECHO -e "\e[31;40;1m没有找到'$PPPOE'程序,请重新安装 rp-pppoe 客户端.\033[0m"
    exit 1
fi

$ECHO -e "\e[032;40;1m检查完毕,环境检测无误,现在开始配置PPPOE:\033[0m"
$ECHO ""
$ECHO -e "\e[032;40;1m配置过程中如果需要强行中止,请按Ctrl+C\033[0m"

while [ true ] ; do
    $ECHO ""
    $ECHO ""
    $ECHO -e "\e[36;40;1m请输入您的ADSL/宽带帐号(默认:$USER):\033[0m"
    printf "%s" ">>> : "
    read U

    if [ "$U" = "" ] ; then
        U="$USER"
    fi

    if test `uname -s` = "Linux" ; then
        $IFCONFIG $ETH > /dev/null 2>&1 || ETH=eth0
    fi
    $ECHO ""
    $ECHO -e "\e[36;40;1m请选择网卡,一般用eth0即可(默认:$ETH):\033[0m"
    printf "%s" ">>> : "
    read E

    if [ "$E" = "" ] ; then
        E="$ETH"
    fi

    $ECHO ""
    $ECHO -e "\e[36;40;1m设置空闲多少秒后自动短线?用默认的no就可以(默认:$DEMAND):\033[0m"
    printf "%s" ">>> : "
    read D
    if [ "$D" = "" ] ; then
        D=$DEMAND
    fi

    $ECHO ""
    $ECHO ""
    $ECHO -e "\e[40;31;1m现在开始配置域名服务器(DNS),这一步非常重要\033[0m"
    $ECHO -e "\e[40;31;1m如果你没有输入DNS的话,将会使用默认DNS服务器.\033[0m"
    $ECHO ""
    $ECHO -e "\e[40;36;1m输入主DNS服务器地址(默认电信61.139.2.69)\033[0m"
    printf "%s" ">>> : "
    read DNS1
    if [ "$DNS1" = "" ] ; then
         DNS1=61.139.2.69
    fi     
    if [ "$DNS1" != "server" ] ; then
       $ECHO -e "\e[40;36;1m输入辅DNS服务器地址(默认移动114.114.114.114)\033[0m"
       printf "%s" ">>> : "
       read DNS2
       if [ "$DNS2" = "" ] ; then
         DNS2=114.114.114.114
       fi     
    fi

    while [ true ] ; do
        $ECHO ""
        $ECHO ""
        stty -echo
        $ECHO -e "\e[40;36;1m请输入您ADSL账户的密码\033[0m"
        printf "%s" ">>> : "
        read PWD1
        $ECHO ""
        $ECHO -e "\e[40;36;1m请再次输入ADSL账户密码\033[0m"
        printf "%s" ">>> : "
        read PWD2
        $ECHO ""
        stty echo
        if [ "$PWD1" = "$PWD2" ] ; then
            break
        fi

        $ECHO -e "\e[40;31;1m对不起,两次输入的密码不一致,再试一次?(y/n)\033[0m"
        printf "%s" ">>> : "
        read ANS
        case "$ANS" in
            N|No|NO|Non|n|no|non)
                $ECHO "你已经选择了退出,再见."
                exit 1
        esac
    done

    # Firewalling
    $ECHO ""
    $ECHO ""
    if test `uname -s` != "Linux" ; then
        $ECHO "Sorry, firewalling is only supported under Linux.  Consult"
        $ECHO "your operating system manuals for details on setting up"
        $ECHO "packet filters for your system."
        FIREWALL=NONE
    else
        $ECHO ""
        while [ true ] ; do
            $ECHO -e "\e[40;36;1m防火墙\033[0m"
            $ECHO "0 - 无"
            $ECHO "1 - 独立: 适合单独的上网计算机"
            $ECHO "2 - 伪装: 适合充当互联网网关"
            $ECHO ""
            $ECHO -e "\e[40;36;1m请选择防火墙的安全等级(0,1,2),如果你是直接pppoe拨号,建议选0就可以了,默认值:0\033[0m"
            printf "%s" ">>> : "
            read a

            echo $a
            if [ "$a" = "" -o "$a" = 0 -o "$a" = 1 -o "$a" = 2 ] ; then
                break
            fi
            clear
            $ECHO -e "\e[40;31;1m请输入数字0或1或2\033[0m"
        done

        case "$a" in
            0)
                FIREWALL=NONE
                ;;
            1)
                FIREWALL=STANDALONE
                ;;
            2)
                FIREWALL=MASQUERADE
                ;;
           *)
                FIREWALL=NONE
                ;;
        esac
    fi

    clear
    $ECHO ""
        $ECHO -e "\e[40;36;1m请核对帐号密码和DNS地址:\033[0m"
    $ECHO -e "\e[40;35;1m***************************************"
    $ECHO "网卡:                $E"
    $ECHO "ADSL用户:        $U"
    if [ "$D" = "no" ] ; then
        $ECHO "按需拨号:        No"
    else
        $ECHO "按需拨号:        Yes; 自动断线时间: $D 秒"
    fi

    if [ "$DNS1" != "" ] ; then
        if [ "$DNS1" = "server" ] ; then
            $ECHO "DNS服务器:        由ISP提供"
        else
                $ECHO "主DNS服务器:        $DNS1"
            if [ "$DNS2" != "" ] ; then
                $ECHO "辅DNS服务器:        $DNS2"
            fi
        fi
    else
            $ECHO "主DNS服务器:        61.139.2.69(电信)"
        $ECHO "辅DNS服务器:        114.114.114.114(移动)"
    fi
    $ECHO "防火墙等级:        $FIREWALL"
    $ECHO -e "***************************************\033[0m"
    while [ true ] ; do
        $ECHO -e "\e[40;36;1m如果设置无误请输入\e[40;31;1my\e[40;36;1m,要重新设置请输入\e[40;31;1mn\033[0m"
        printf "%s" '>>> : '
        read ANS
        case "ANS" in
            Y|y|yes|Yes|oui|Oui)
                ANS=y
                ;;
            N|n|no|No|non|Non)
                ANS=n
                ;;
        esac
        if [ "$ANS" = "y" -o "$ANS" = "n" ] ; then
            break
        fi
    done
    if [ "$ANS" = "y" ] ; then
        break
    fi
done

# Adjust configuration files.  First to $CONFIG

copy $CONFIG $CONFIG-bak
if [ "$DNS1" = "server" ] ; then
    DNSTYPE=SERVER
    DNS1=""
    PEERDNS=yes
else
    PEERDNS=no
    if [ "$DNS1" = "" ] ; then
        DNSTYPE=NOCHANGE
    else
        DNSTYPE=SPECIFY
    fi
fi

# Where is pppd likely to put its pid?
if [ -d /var/run ] ; then
    VARRUN=/var/run
else
    VARRUN=/etc/ppp
fi

# Some #$(*& ISP's use a slash in the user name...
sed -e "s&^USER=.*&USER='$U'&" \
    -e "s&^ETH=.*&ETH='$E'&" \
    -e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-pppoe.pid\"&" \
    -e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
    -e "s/^DEMAND=.*/DEMAND=$D/" \
    -e "s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/" \
    -e "s/^DNS1=.*/DNS1=$DNS1/" \
    -e "s/^DNS2=.*/DNS2=$DNS2/" \
    -e "s/^PEERDNS=.*/PEERDNS=$PEERDNS/" \
    < $CONFIG-bak > $CONFIG

if [ $? != 0 ] ; then
    $ECHO "** Error modifying $CONFIG"
    $ECHO "** Quitting"
    exit 1
fi

if [ "$DNS1" != "" ] ; then
    if [ "$DNS1" != "server" ] ; then
##        $ECHO "Adjusting /etc/resolv.conf"
        if [ -r /etc/resolv.conf ] ; then
            grep -s "MADE-BY-RP-PPPOE" /etc/resolv.conf > /dev/null 2>&1
            if [ "$?" != 0 ] ; then
##                $ECHO "  (But first backing it up to /etc/resolv.conf-bak)"
                copy /etc/resolv.conf /etc/resolv.conf-bak
            fi
        fi
        $ECHO "# MADE-BY-RP-PPPOE" > /etc/resolv.conf
        $ECHO "nameserver $DNS1" >> /etc/resolv.conf
        if [ "$DNS2" != "" ] ; then
            $ECHO "nameserver $DNS2" >> /etc/resolv.conf
        fi
    fi
fi

##$ECHO "Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets"
if [ -r /etc/ppp/pap-secrets ] ; then
##    $ECHO "  (But first backing it up to /etc/ppp/pap-secrets-bak)"
    copy /etc/ppp/pap-secrets /etc/ppp/pap-secrets-bak
else
    cp /dev/null /etc/ppp/pap-secrets-bak
fi
if [ -r /etc/ppp/chap-secrets ] ; then
##    $ECHO "  (But first backing it up to /etc/ppp/chap-secrets-bak)"
    copy /etc/ppp/chap-secrets /etc/ppp/chap-secrets-bak
else
    cp /dev/null /etc/ppp/chap-secrets-bak
fi

egrep -v "^$U|^\"$U\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets
$ECHO "\"$U\"        *        \"$PWD1\"" >> /etc/ppp/pap-secrets
egrep -v "^$U|^\"$U\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets
$ECHO "\"$U\"        *        \"$PWD1\"" >> /etc/ppp/chap-secrets

$ECHO ""
$ECHO ""
$ECHO ""
$ECHO -e "\e[40;31;1m恭喜,所有设置已经完成!\033[0m"
touch /etc/ppp/ppp.lock
#$ECHO ""
#$ECHO -e "\e[40;32m输入pppoe-start连接宽带网络"
#$ECHO  "输入pppoe-status查看网络连接的状态"
#$ECHO -e "输入pppoe-stop关闭宽带网络.\033[0m"
#$ECHO ""
$ECHO -e "\e[40;32;1m如需修改ADSL配置,也可手动编辑/etc/ppp/pppoe.conf.\033[0m"
$ECHO ""

while [ true ] ; do
    $ECHO -e "\e[40;33;1m如需立即连接ADSL,请输入\e[40;31;1my\e[40;33;1m,退出请输入\e[40;31;1mn\033[0m"
    $ECHO ""
    printf "%s" '>>> : '
    read LINKNOW
    case "LINKNOW" in
        Y|y|yes|Yes|oui|Oui)
           LINKNOW=y
           ;;
        N|n|no|No|non|Non)
           LINKNOW=n
           ;;
     esac
     if [ "$LINKNOW" = "y" -o "$LINKNOW" = "n" ] ; then
        break
     fi
done
if [ "$LINKNOW" = "y" ] ; then
   clear
   $ECHO "开始连接,pppoe-start..."
   ifconfig $INTERFACE down
   killall -q udhcpc
   udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid               
   pppoe-start
   setdns
   adsl
fi
clear
$ECHO "设置已经保存,请选择后续操作或退出"
adsl
####adsl脚本结束####
======================================================================================
####myrootfs脚本开始####
#!/bin/sh
#保存位置/usr/bin/myrootfs
TOP_DIR=`pwd`
#检查用户的权限是否为root权限
check_root(){
if test $(id -u) != 0 ; then
  echo -e "\n此脚本仅适合在SliTaz系统root权限下操作."
  echo -e "\n脚本需要root权限运行 `basename $0`."
  echo -e "请使用su命令(密码:root)切换到root用户.\n"
  exit 0
fi
}
write_rootfs(){
  cd /tmp/root
  echo -e "\n正在用lzma格式压缩生成 rootfs.gz文件,请耐心等待几分钟......"
  find . -print | cpio -o -H newc | lzma e -si -so > ../rootfs.gz
  echo 1 > /tmp/rootfs
}

check_root
echo -e "\n\033[1mWrite filesystem to rootfs.gz\033[0m"
echo -e "=================================================================="
echo -e "\e[40;31;1m命令\033[0m \033[1;33mmyrootfs\\033[0;39m将会把当前文件系统写入到相应cpio格式文件中(rootfs.gz)。"
echo -e "\nArchive compression: lzma"
echo -e "\n删除缓存..."
rm /home/tux/.cache -r -f
rm /var/cache/tazpkg/* -r -f
rm -f /etc/blkid.tab
rm -f /etc/udev/rules.d/70-persistent-net.rules
#  display harddisk
mv /var/run/dbus/pid /var/run/dbus/pid.bak

echo -e "\n想要清除声卡和屏幕设置选项吗 ? "
echo -n "按 ENTER保持当前设置,或回答 (No|Yes|Exit): "
read anser
case $anser in
  e|E|"exit"|Exit)
    exit 0 ;;
  y|Y|yes|Yes)
    echo -e "\n删除当前声卡和屏幕设置..."
    rm -f /var/lib/sound-card-driver
    rm -f /etc/asound.state
    rm -f /etc/X11/screen.conf
    rm -f /etc/X11/xorg.conf ;;
  *)
    echo -e "\n保持当前声卡和屏幕设置..." ;;
esac

echo -e  "\n新建/tmp/root文件夹"
mkdir /tmp/root
echo -e "同步目录到/tmp/root........."
mount -o bind / /tmp/root

rm -f /tmp/rootfs
write_rootfs &
sleep 2
cd - > /dev/null
echo -en "\n文件系统大小:"
while [ ! -f /tmp/rootfs ]
  do
    sleep 1
    echo -en "\\033[18G`du -sh /tmp/rootfs.gz | awk '{print $1}'`    "
  done
mv -f /tmp/rootfs.gz $TOP_DIR
echo -e "\n[\\033[1;33mrootfs.gz\\033[0;39m]保存在 $TOP_DIR文件夹中\n\n"
mv /var/run/dbus/pid.bak /var/run/dbus/pid
sakura -e "sudo umount -f /tmp/root"
sakura -e "sudo rmdir /tmp/root"
exit
####myrootfs脚本结束####
作者: 2046523    时间: 2016-2-1 10:48
神雕放出一个后又没信息了 支持楼主折腾
作者: pcfan120    时间: 2016-2-1 14:51
支持楼主更新
作者: devilma    时间: 2016-2-1 16:30
学习一下!够详细……希望有人解决中文输入问题
作者: 1328558    时间: 2016-2-2 18:02
支持楼主更新
作者: wangxiongfang    时间: 2016-2-3 02:33
屮也非常喜物slitaz,小巧,快速,还可iso不解包直接引导。现在还在用神雕定制的4。0版。
去年见他放了一个5。0的测试版,不过中文化、中文输入都没搞全。
多谢楼主分享经验,有时间时多学习下。
作者: my9823    时间: 2016-2-18 22:52
安装中文字体可以复制到/usr/share/fonts目录,中文输入建议使用小小输入法!fcitx过于庞大@
作者: nrywlm    时间: 2016-2-19 08:01
网盘地址,没有了?
作者: 2012852253701    时间: 2016-2-22 23:29
几十年没上无忧了,看到这贴必须登录账号回复一句,楼主太厉害了
作者: pcfan120    时间: 2016-2-23 09:09
技术贴。。支持
作者: 2012xemaco    时间: 2016-2-27 09:17
支持楼主发布成品!
作者: 2012tzyx    时间: 2016-2-29 23:04
5.0版的系统输入法我也没搞定
不过可以凑合用emacs的内置输入法。。。

作者: hht168    时间: 2016-3-9 07:31
请楼主把自动挂载硬盘的功能加进去。期待您的作品发布!
作者: hytmtet    时间: 2016-3-9 08:31
好强悍的帖子,完全看不懂。。
作者: devilma    时间: 2016-3-9 12:15
能加入uefi引导吗、
作者: circleyun    时间: 2016-3-10 08:40
devilma 发表于 2016-3-9 12:15
能加入uefi引导吗、

同意,如果能够给个定制好的支持UEFI 32位的ISO成品就好了。
因为我只会《UltraISO》硬盘写入,而且是默认写入的制作方法。
哪个有已经定制好的支持UEFI 32位的Linux  ISO,且能光盘运行的麻烦给一个,
最好是SliTaz、Slax、puppy、TinyCore
试过http://bbs.wuyou.net/forum.php?mod=viewthread&tid=371881
但能力有限实在不会弄,或者他不支持32位UEFI。
作者: 2010tljabc    时间: 2016-5-11 09:20
我定制的Slitaz linux 4.0下载地址
http://pan.baidu.com/s/1qY9XL1q
作者: 2010tljabc    时间: 2016-5-11 10:07
我定制的Slitaz linux 5.0下载地址:
http://pan.baidu.com/s/1hr49gyw
作者: hit22    时间: 2016-5-13 07:29
本帖最后由 hit22 于 2016-5-13 10:44 编辑
2010tljabc 发表于 2016-5-11 10:07
我定制的Slitaz linux 5.0下载地址:
http://pan.baidu.com/s/1hr49gyw


因为壁纸的原因,我昨天产生了错觉。

微米黑显示中文确实有些发糊。
作者: wintoflash    时间: 2016-5-13 08:25
circleyun 发表于 2016-3-10 08:40
同意,如果能够给个定制好的支持UEFI 32位的ISO成品就好了。
因为我只会《UltraISO》硬盘写入,而且是默 ...

直接解压到U盘
作者: hejian0710    时间: 2016-5-13 08:49
钥匙能加入GHOST工具和打气筒水滴就好了
作者: wintoflash    时间: 2016-5-13 09:28
devilma 发表于 2016-3-9 12:15
能加入uefi引导吗、

slitaz官方版内核不支持efi
需要自己编译内核
作者: wintoflash    时间: 2016-5-13 09:29
devilma 发表于 2016-3-9 12:15
能加入uefi引导吗、

slitaz官方版内核不支持efi
需要自己编译内核
作者: hit22    时间: 2016-5-13 11:45
折腾了一早上中文输入法 scim。
本来打算从openbox的autostart入手
结果系统出现错误提示:
Obt-Message: Xinerama extension is not present on the server
Obt-Message: Failed to open an Input Method
Openbox-Message: X服务器不支持locale。
Openbox-Message: 无法设置X服务器的locale修饰键。


现在用百度在线输入法回帖
作者: kalon1984    时间: 2017-2-21 19:44
牛人!
作者: 2012sinkr    时间: 2018-7-20 10:02
支持楼主更新
作者: 2010tljabc    时间: 2018-12-22 21:18
2018.12.22####ins5cn.sh内容开始####=======================
#!/bin/sh

if test $(id -u) != 0 ; then
  echo -e "该脚本需要root权限的终端下运行。"
  echo -e "请运行: subox sh ./`basename $0`或sudo sh ./`basename $0`"
  echo -e "或输入su(密码root)后运行: sh ./`basename $0` \n"
  exit 0
fi
TDIR=$(cd "$(dirname "$0")"; pwd)
VERSION=$(cat /etc/slitaz-release)
URL="http://malibu.tuxfamily.net/slitaz"
ISO_URL="${URL}/iso/rolling/slitaz-rolling-core.iso" #64位版slitaz-rolling-core64.iso
ISO=$(basename $ISO_URL)
ISO_PATH="/home/slitaz/$VERSION/distro"
PKG_MIRROR="${URL}/packages/$VERSION/"
IME_URL="https://github.com/fireflyoo/slitaz-cn/raw/master/yong-2.5.0.tazpkg"
IME=$(basename $IME_URL)

#修改/usr/bin/tazlito文件,在第2179行:action 'Copying the Linux kernel...'后插入以三行
grep -n "ipxe.exe" /usr/bin/tazlito >/dev/null
if [ $? -ne 0 ] ;  then
  sed -i  '2180i\cp "$TMP_DIR/boot/ipxe.exe" "$TARGET/rootcd/boot/"' /usr/bin/tazlito
  sed -i  '2181i\cp "$TMP_DIR/boot/linld.com" "$TARGET/rootcd/boot/"' /usr/bin/tazlito
  sed -i  '2182i\cp "$TMP_DIR/boot/memtest.exe" "$TARGET/rootcd/boot/"' /usr/bin/tazlito
fi

##一、下载所需文件。下载iso文件,矢量字体、中文locale、所需软件包以入小小输入法
#[ ! -e $ISO ] && wget -P . $ISO_URL
#[ ! -e $IME ] && wget -P . $IME_URL
#tazpkg get wqy-microhei
#tazpkg get locale-zh_CN

if [ -e $ISO ] ; then
  tazlito clean-distro
  mkdir -p $ISO_PATH
  tazlito extract-distro $ISO
  echo "$PKG_MIRROR" > $ISO_PATH/rootfs/var/lib/tazpkg/mirror
  cp /usr/bin/tazlito $ISO_PATH/rootfs/usr/bin
  [ -e $ISO_PATH/rootcd/boot/root*z ] && rm -f $ISO_PATH/rootcd/boot/root*z
  ROOTS=$ISO_PATH/rootfs
  bb=$ROOTS/usr
  menu=$ROOTS/etc/skel/.config
  dsk=$ROOTS/usr/share
  lepad=$ROOTS/etc/skel/.config/leafpad
  bk=$ROOTS/etc/skel/.config/gtk-3.0
  etcs=$ROOTS/etc
  deli18n=$ROOTS/usr/share/i18n/locales
  xin=$ISO_PATH/rootfs/etc/skel/.xinitrc
else
  ROOTS=/
  bb=/usr
  menu=/home/tux/.config
  dsk=/usr/share
  lepad=/home/tux/.config/leafpad
  bk=/home/tux/.config/gtk-3.0
  etcs=$ISO_PATH/rootfs/etc
  deli18n=/usr/share/i18n/locales
  xin=/home/tux/.xinitrc
fi
##安装字体、中文支持、iso镜像大师、文件属性查看file
rm -f $ROOTS/usr/lib/gtk-2.0/2.10.0/immodules/*.so
for i in wqy-microhei locale-zh_CN-5.0 locale-zh_CN-extra locale-zh_CN-5.0-3.0 \
    readline isomaster libmagic file numlockx ; do
  tazpkg -i $i*.tazpkg --root=$ROOTS --nodeps --local --forced  
done
tazpkg -i $IME --root=$ROOTS --nodeps --local --forced  

if [ -f mytool.tar.gz ] ; then
  ! [ -d mytool/bin ] && tar -xvf mytool.tar.gz
else
  echo -e "没有mytool.tar.gz文件!"
  exit 1
fi

###添加自制脚本工具adsl和tazto;修改桌面背景
cp -ar mytool/bin/* $bb/bin
chown root:root $bb/bin/adsl
chmod u=rwx,g=rx,o=rx $bb/bin/adsl
chown root:root $bb/bin/adsl1
chmod u=rwx,g=rx,o=rx $bb/bin/adsl1
chown root:root $bb/bin/tazto
chmod u=rwx,g=rx,o=rx $bb/bin/tazto
#chmod 755 /usr/bin/tazto
cp -ar mytool/images/*.jpg $bb/share/images/

##修改开始菜单的任务栏和右键菜单menu.xml
rm -rf $menu/lxpanel/slitaz/panels/panel
[ -d $menu/lxpanel/slitaz/panels ] || mkdir -p $menu/lxpanel/slitaz/panels
cp -ar mytool/conf/panel $menu/lxpanel/slitaz/panels/
[ -d $menu/openbox ] || mkdir -p $menu/openbox
cp -ar mytool/conf/menu.xml   $menu/openbox/
#添加root权限的密码
[ -d $menu/slitaz ] || mkdir -p $menu/slitaz
echo root > $menu/slitaz/subox.conf

##修改desktop文件添加中文名称的显示
rm -rf $dsk/applications/*.desktop
cp -ar mytool/app/*.desktop $dsk/applications/
cp -ar mytool/images/*.png $dsk/icons/SliTaz-Faenza/16x16/apps/
cp -ar mytool/images/*.png $dsk/icons/SliTaz-Faenza/48x48/apps/

###修改leafpad的配置
[ -d $lepad ] || mkdir -p $lepad
echo 0.8.18.1 >$lepad/leafpadrc
echo 640 >>$lepad/leafpadrc
echo 480 >>$lepad/leafpadrc
echo Monospace 12 >>$lepad/leafpadrc
echo 0 >>$lepad/leafpadrc
echo 1 >>$lepad/leafpadrc
echo 0 >>$lepad/leafpadrc

###设置打开文件夹的常用书签
[ -d $bk ] || mkdir -p $bk
echo file:/// / >$bk/bookmarks
echo file:///media media >>$bk/bookmarks
echo file:///mnt mnt >>$bk/bookmarks
echo file:///usr usr >>$bk/bookmarks
echo file:///home/tux tux >>$bk/bookmarks

###设置键盘映射、时区及修正时间显示
echo us > $etcs/keymap.conf
echo Asia/Shanghai > $etcs/TZ
grep -n "hwclock -l -s" $etcs/init.d/local.sh >/dev/null
if [ $? -ne 0 ] ;  then
  echo "hwclock -l -s" >> $etcs/init.d/local.sh
  echo "#hwclock -t" >> $etcs/init.d/local.sh
  echo "#ntpd -nq -p cn.ntp.org.cn" >> $etcs/init.d/local.sh
  echo "tazlocale zh_CN" >> $etcs/init.d/local.sh
  echo "localedef -i zh_CN -c -f 'UTF-8' '/usr/lib/locale/zh_CN.UTF-8'" >> $etcs/init.d/local.sh
fi
#删除除zh_CN外的语言,设置系统语言为zh_CN
mv -f $deli18n/en_US $deli18n/US
rm -rf $deli18n/de* $deli18n/es* $deli18n/fr* $deli18n/pt*
rm -rf $deli18n/ru* $deli18n/it* $deli18n/en*
mv -f $deli18n/US $deli18n/en_US

###修改.xinitrc 添加小小输入法
cat $xin |grep "yong" >/dev/null
if [ $? -ne 0 ]; then
  sed -i '4i\sudo gtk-query-immodules-2.0 --update-cache' $xin
  sed -i '5i\export LANG=zh_CN.UTF-8' $xin
  sed -i '6i\export LC_ALL=zh_CN.UTF-8' $xin
  sed -i '7i\export XIM=yong' $xin
  sed -i '8i\export XIM_PROGRAM=yong' $xin
  sed -i '9i\export XMODIFIERS="@im=yong"' $xin
  sed -i '10i\export QT_IM_MODULE="yong"' $xin
  sed -i '11i\export GTK_IM_MODULE="yong"' $xin
  sed -i '12i\yong -d' $xin
  sed -i '13i\sudo hwclock -l -s' $xin
fi
###修改.xinitrc 设置屏幕的关闭时间为2小时,设置系统声音大小为70%
cat $xin |grep "numlockx" >/dev/null
if [ $? -ne 0 ]; then
  sed -i '14i\xset s 7200 600' $xin
  sed -i '15i\xset -dpms' $xin
  sed -i '16i\amixer set Master 70%' $xin
  sed -i '17i\numlockx on' $xin
fi
##删除不需要的应用程序本地语言支持包
for i in ca de el en es fa fr it ja pl pt_BR ru sv vi vi_VN ; do
  rm $ROOTS/usr/share/locale/$i -rf
done
if ! [ -e $ISO ] ; then
     #注销系统
  sleep 10
  [ "$_LXSESSION_PID" ] && kill $_LXSESSION_PID
  openbox --exit
  exit 0
fi
cat << EOF | chroot $ISO_PATH/rootfs
yes | tazpkg remove asunder
yes | tazpkg remove locale-de
yes | tazpkg remove locale-es
yes | tazpkg remove locale-fr
yes | tazpkg remove locale-it
yes | tazpkg remove locale-pt
yes | tazpkg remove locale-pt_BR
yes | tazpkg remove locale-ru
yes | tazpkg remove grub4dos-linux
tazlocale zh_CN
tazpkg clean-cache
hwclock -l -s
cd /var/lib/tazpkg
rm -rf packages.* ID* files* *.txt extra.list
sed -i 's/ntpd//' /etc/rcS.conf
sed -i 's/Monospace/DejaVu Sans Mono/' /etc/skel/.Xdefaults
gtk-query-immodules-2.0 --update-cache
EOF
echo -en "\n\ntazto inspkg *.tazpkg\ntazto cp"
echo -en "\n\ntazlito gen-initiso\ntazto mi\n"
exit 0
####ins5cn.sh内容结束####================================
作者: 2010tljabc    时间: 2018-12-22 21:19
Slitaz 5.0汉化脚本
作者: 2010tljabc    时间: 2018-12-22 21:23
解决了输入法的问题:使用小小输入法,
但出现新的问题:xterm终端下显示汉字全是???,在Slitaz 4.0以及Slitaz 5.0内核使用3.2.53中都可以




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3