龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 10951|回复: 30

修复了一些pmon的问题.最好能够进入git

  [复制链接]
发表于 2010-8-30 23:11:25 | 显示全部楼层 |阅读模式
本帖最后由 刘世伟 于 2010-8-31 01:31 编辑

1.修复initrd命令太慢
load_bin函数, 一次读512字节,所以很慢,  2m的initrd.img ,要5分钟才可以载入,
增加每次读取的字节数后,几秒钟完成读入,
这个对于debian很重要, 我们可以在initrd.img里面加载btrfs等这些怪异的fs做根了.只要pmon载入ext2的/boot/initrd.img
debian的安装程序也需要的initrd.img

  1. --- pmon_yeeloong.orig/pmon//loaders/exec_bin.c 2010-05-18 10:45:31.000000000 +0800
  2. +++ pmon_yeeloong/pmon/loaders/exec_bin.c       2010-08-30 22:35:19.094909405 +0800
  3. @@ -50,7 +50,7 @@
  4.     load_bin (int fd, char *buf, int *n, int flags)
  5. {
  6.         void *addr = (void *)dl_offset;
  7. -       int size = 512;
  8. +       int size = 4096*16;
  9.         int n2;
  10.         int count = 0;
复制代码
 楼主| 发表于 2010-8-30 23:13:00 | 显示全部楼层
本帖最后由 刘世伟 于 2010-8-30 23:14 编辑

2.pmon的vers 显示出来的版本号, 带有中文乱码字符,这个补丁可以修复这个问题

  1. diff -uNra pmon.orig/conf/newvers.sh pmon1/conf/newvers.sh
  2. --- pmon.orig/conf/newvers.sh   2010-08-25 17:33:37.000000000 +0800
  3. +++ pmon1/conf/newvers.sh       2010-08-29 21:33:27.084848588 +0800
  4. @@ -38,7 +38,7 @@
  5. fi

  6. touch version
  7. -v=`cat version` u=${USER-root} d=`pwd` h=`hostname` t=`date`
  8. +v=`cat version` u=${USER-root} d=`pwd` h=`hostname` t=`date "+%Y-%m-%d %H:%M:%S"`
  9. id=`basename ${d}`

  10. ost="PMON2000"
复制代码
 楼主| 发表于 2010-8-30 23:17:19 | 显示全部楼层
3.让pmon的vers命令能够显示LM-6004-1.3.7 这样的版本号,
  1. --- pmon_yeeloong.orig/pmon//cmds/shellcmds.c   2010-05-18 10:45:31.000000000 +0800
  2. +++ pmon_yeeloong/pmon/cmds/shellcmds.c 2010-08-30 20:55:48.062906608 +0800
  3. @@ -154,7 +154,7 @@
  4.                 return(-1);
  5.         }

  6. -       printf ("PMON: %s\n", vers);
  7. +       printf ("PMON: %s (%s)\n", vers,getenv("Version"));

  8.         if(aflag) {
  9.                 tgt_cmd_vers();
复制代码
 楼主| 发表于 2010-8-30 23:19:33 | 显示全部楼层
4.调整size大小后,在申请内存,节约闹革命.
  1. --- pmon.orig/pmon/fs/ext2fs.c  2010-08-25 17:33:37.000000000 +0800
  2. +++ pmon1/pmon/fs/ext2fs.c      2010-08-29 22:13:06.928862823 +0800
  3. @@ -422,10 +427,10 @@
  4. {
  5.         int real_size;

  6. -       memset(read_start, 0, size);
  7.         if ((_file[fd].posn + size) > File_inode->i_size) {
  8.                 size = File_inode->i_size - _file[fd].posn;
  9.         }
  10. +       memset(read_start, 0, size);
  11.         real_size =
  12.             ext2_read_file(fd, read_start, size, _file[fd].posn, File_inode);
  13.         if ((_file[fd].posn + real_size) > File_inode->i_size) {
复制代码
 楼主| 发表于 2010-8-30 23:30:54 | 显示全部楼层
本帖最后由 刘世伟 于 2010-8-31 01:11 编辑

5.gui这个命令,应该已经被boot_menu取代了,因此可以去掉了.
  1. --- pmon.orig/Targets/Bonito/conf/Bonito.box    2010-08-25 17:33:37.000000000 +0800
  2. +++ pmon1/Targets/Bonito/conf/Bonito.box        2010-08-29 21:00:24.720848153 +0800
  3. @@ -98,7 +99,7 @@
  4. # Command selection. Selects pmon commands
  5. #
  6. select          cmd_about               # Display info about PMON
  7. -select         cmd_gui
  8. +#select                cmd_gui
  9. select          cmd_boot                # Boot wrapper
  10. select          cmd_mycmd
  11. select          cmd_newmt
复制代码
 楼主| 发表于 2010-8-30 23:35:50 | 显示全部楼层
本帖最后由 刘世伟 于 2010-8-31 09:03 编辑

几个pmon的bin的下载,如果你需要 initrd.img功能, 可以升级试试。
http://www.bjlx.org.cn/loongson/pmon   
后缀带a的是新的bin,测试后, 会陆续放上来。
pmon-LM60xx-1.3.6a.bin 加速initrd.img的载入,  增加recover功能, 可以按tab进入u盘恢复功能
pmon-LM8089-1.4.9a.bin 加速initrd.img的载入
发表于 2010-8-30 23:54:36 | 显示全部楼层
支持一个!
发表于 2010-8-31 07:05:08 | 显示全部楼层
支持,辛苦了
发表于 2010-8-31 08:50:39 | 显示全部楼层
刘工真是厉害,曾经给我们这些菜鸟提共了很多的帮助,感谢他呀
 楼主| 发表于 2010-8-31 09:05:14 | 显示全部楼层
增加了一个FULOONG的  1.3.6a.bin   带了[tab]恢复功能,  胆量大的可以试试.哈哈.

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-7-23 22:43 , Processed in 0.199293 second(s), 19 queries .

快速回复 返回顶部 返回列表