一些牢骚

自己好久都没有更新内容了,主要是太忙了,每天上班基本上全身心投
入了,以至于没时间关注其他的内容。回到家就是稍作休息即刻睡觉了。

然后就突然发现,已经要两个月没有更新了,就随便发下闹骚。

也突然发现,马航的事情已经过去10多天了,国内的关注已经不知道跑
到哪个方面了,可怜的国外还在不断的深挖,搜寻,就连从不问真相的央
视媒体也都还在努力的追风关注。

不过,央视的媒体也就煽情,蜡烛之类的了,他们更多的精力是放在了
带几个表和开两个会上了。有时候,我觉得,他们有追查马航的真相的事
情不如从现在起,将所有报道的事情都追查清楚,啊,我的中国梦又犯了。

pxe不解iso安装xp系统

这里只介绍最重要的内容,其他的可以自行网上查找。

如果你和我一样,tftpd服务器运行在局域网里的某台机器上,我在
openwrt里是这样配置的:

       config boot linux
        option filename '/pxelinux.0'
        option serveraddress '172.10.1.155'
        option servername 'raspi'
        option 'option:root-path,172.10.1.155:/usb/netboot'
       

注意将上面的ip以及root-path中的Ip和路径换成正确的,不过好像最
后的root-path不要也可以。

不要忘记将tftp服务打开,在网络的dns相关配置的。

使用下列命令重启,使配置生效(该命令不会中断现有的任何网络操作)

       /etc/init.d/dnsmasq restart
       

tftpd-hpa相关配置(对我而言自然是172.10.1.155这台机器了):

       # /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/usb/netboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --ipv4"
       

准备工作做完,启动tftpd-pha服务。

对pxelinux的配置,添加下面的标签,启动grub4dos,通过grub4dos来
安装xp

       label grub4dos
      menu label ^Grub4dos
      KERNEL /grub/grldr.bin
      append initrd=/grub/grldr.bin
       

注意路径是绝对路径,对我而言,就是/usb/netboot/grub/grldr.bin
文件,之前配置中已经写了根目录的路径了。我将grub4dos放在grub目录
下。

找不到grldr.bin? 就是将grldr复制一下,添加上后缀名.bin

grub4dos的menu.lst配置:

 title xp setup step 1
find --set-root /iso/xp.iso
map --mem /patch/FIRADISK.IMG (fd1)
map  --mem /iso/xp.iso (hd32)
map --mem (md)0x6000+800 (fd0)
map --hook
dd if=(fd1) of=(fd0) count=1
chainloader (hd32)
boot

title xp setup step 2
find  --set-root /iso/xp.iso
#map (hd0) (hd1)
#map (hd1) (hd0)
map --mem /iso/xp.iso (hd32)
map --hook
chainloader (hd0)+1

       

按照上面的步骤,第一步就是选择step1, 复制完重启的时候,选择
step2,接着安装。配置中的所有路径都是和之前的grldr.bin的路径规范
一样,对我而言,就是/usb/netboot/iso/xp.iso

如果不是通过pxe启动,而是u盘启动的话,将被注释的那两个map放出
来即可。

通过pxe安装xp,我好多年之前弄过一次,看到又要解包又要改名的,
直接崩溃,最后拿个光驱装了,这个不用改名,比较好弄,对于win7是不
是也可以通过类似的方式没有测试。

不过,通过pxe安装速度好慢,我在虚拟机里测试,基本上30分钟以上
才能将一张光盘复制到内存中,不过就是一旦进入到安装程序,则是速度
飞快,安装xp,排除下载光盘占用的时间,基本上15分钟安装完毕。通过其他方式加速也没有效果,实在很无奈。

平安夜福利:mediatomb为三星智能电视添加字幕支持

那時、天下人的口音言語、都是一樣。他們往東邊遷移的時候、在示拿地遇見一片平原、就住在那裏。他們彼此商量說、來吧、我們要作磚、把磚燒透了。他們就拿磚當石頭、又拿石漆當灰泥。他們說、來吧、我們要建造一座城、和一座塔、塔頂通天、為要傳揚我們的名、免得我們分散在全地上。耶和華降臨要看看世人所建造的城和塔。耶和華說、看哪、他們成為一樣的人民、都是一樣的言語、如今既作起這事來、以後他們所要作的事、就沒有不成就的了。我們下去、在那裏變亂他們的口音、使他們的言語、彼此不通。於是耶和華使他們從那裏分散在全地上。他們就停工、不造那城了。因為耶和華在那裏變亂天下人的言語、使眾人分散在全地上、所以那城名叫巴別。
——創世記11:1-9(中文和合本)

耶和华真是闲的蛋疼的一个。昨天提到的文章和相关补丁,主要是解决
mediatomb作为服务器,为三星智能电视提供多媒体支持的,不过,到现在
我的mpeg问题还没有解决。今天在看3D电影的时候才发现,下载的一部分
竟然没有字幕,想想如何才能支持呢,于是,求助万能的3W,找到一堆关于
transcode配置的,简单的说,就是使用memcode(这个可能拼错了)之类
的工具转码进行,这个不太适合吧,我编译的脸ffmpeg都去掉了,不过,
幸好有高人也碰到了这个问题,而且,研究出来了。

详细的补丁和讨论在这里:讨论 samsung_video_subtitles.patch

我检出来的版本是: b66dc1f0421b6b82c0241bb5cc8299c127babe32

这里我做了一个针对这个版本的所有补丁,这个补丁集成了之前提到的那些问题,同时,支持字幕。补丁的下载位置在这里:mediatomb.patch

顺带一提,要启用字幕功能的话,需要在配置文件中添加上下面一行:

       protocolInfo extend="yes" samsung-hack="yes"/>
       

samsung通过mediatomb播放rmvb

本来一件很简单的需求,慢慢的变成了一场灾难。

早前一直在电脑上看视频,家里的56吋的三星3D电视就在那里落灰了。
突然想到树莓pi上的硬盘里面有很多视频文件和照片,就想整理下,在电
视上放,当然,还有一个想法就是看播放3D是什么效果,我还没用过它看
3D电影呢。

于是,很简单的需求,架个minidlna服务器,so easy,然后,啊哦,
rmvb不支持,看下说明书,明明支持的啊,mkv不支持超过x264 level 4.1,我
下载的片子竟然是5.0的,当然,刚开始一直不知道,就折腾啊折腾,才找
到这个原因,使用ffmpeg也折腾好久才弄明白怎么转换是正确的,顺便一
提:

           ffmpeg -i aa.mkv -c:v libx264 -preset fast -c:a copy -scodec
           copy out.mkv
       

-scodec这个参数可能有些问题,没有的话他会按照默认的字幕和配音
弄,弄的话可能有问题,这个参数没有验证过

好不容易弄好之后,一播放,太卡,这个好办多了,换成有线,一切妥
妥的。

但minidlna不支持rmvb,这个比较蛋疼了。除了rmvb,我里面剩下的视
频文件就不多了,也好像不支持mpg,啊哦,又一个问题,想了想,换一个
吧,好在linux下相类似的软件多,于是,换上了mediatomb

苦难从此开始。

继续阅读samsung通过mediatomb播放rmvb

mnesia使用中文创建数据库并支持REST操作

这个不是什么高深的内容,记录下来,给自己提个醒。

起源于我想给我的所有数据库添加一个统一的操作接口,当然,使用英
文会更方便,更批量化,代码更少等等,我在弄的时候突发奇想,使用中
文吧,这样网页中看着连想都不用想,而且还可以给别人看,连教育部都
不支持中文了,杂家也随下大流。

其实erlang的record完全支持中文的声明,比如下面的例子:

      -record('公告',
        {'ID', %ID
         '标题' = "", % 标题
         '内容' = "", % 描述
         '显示' = true% 禁用
        }).
      

只所以可以成功是因为单引号的字符串,在erlang中就是作为一个atom
类型的,如果你想给里面加个空格什么的,也没问题。当然,使用的时候也
要加上单引号。

其实,erlang的record使用中文的话,也就上面的这些。但如果在shell
中使用,就比较烦人了,在命令行下使用下面的语句:

     mnesia:transaction(fun() -> mnesia:match_object('公告') end)).
     

会出现:illegal atom 的错误,或许修改环境变量的编码可以修改,我
没有测试。

接下来是http的REST接口,一般都使用的是表格显示,我喜欢使用JSON数
据格式,这个就更简单些了。还是上面的record:

继续阅读mnesia使用中文创建数据库并支持REST操作