S60-创建.mbm文件

创建.mbm文件

     MBM代表Multi-BitMaps,一个MBM文件可以包含多个具有不同色深和分辨率的BMP文件。MBM文件可以在编译过程中自动创建,也可以使用bmconv工具手动创建。下面将分别介绍这两种方法。

 

1。编译过程中创建

 

 

     需要在程序的MMP文件中添加以下内容:

 

     start bitmap target-file
         [targetpath target-path ]
         [header ]
          [sourcepathsource-path ]
         source color-depthsource-bitmap-list
     end

  •       target-file是生成的MBM文件的文件名
  •       targetpath 是可选项。如果未指定,MBM文件将生成在该应用程序的目录
  •       header也是可选项。如果指定该关键字,将在 epoc32include目录下生成一个.mbg的头文件。生成的.mbg头文件中包含每一个位图的枚举值,在资源文件中需要此文件中生成的枚举值
  •       sourcepath 指定原始Windows BMP文件的位置。
  •       source该语句后的所有BMP文件必须是同样的色深。如果需要在一个单独的MBM文件中包含不同色深的BMP文件,必须指定多个 source

     例如:

     start bitmap sprites.mbm
         header
         sourcepath ..itmaps
         source c12 ship.bmpbullet.bmp  alien.bmp     
     end

 

 

二、使用bmconv工具创建

     输入如下命令:

 

     bmconv sprites.mbm /c12ship.bmp /c12bullet.bmp /c12alien.bmp

 

     在bmconv命令后使用/u选项,可以从MBM文件中提取BMP文件,得到的BMP文件色深都是24。也可以使用在命令后指定/v选项来显示MBM文件的内容。

     在命令行下输入bmconv,查看它支持的所有选项。

root@test-10-1-18-12:/home/test/gpu-burn# udevadm test /sys/class/infiniband/mlx5_7 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. Trying to open "/etc/systemd/hwdb/hwdb.bin"... Trying to open "/etc/udev/hwdb.bin"... Trying to open "/usr/lib/systemd/hwdb/hwdb.bin"... Trying to open "/lib/systemd/hwdb/hwdb.bin"... Trying to open "/lib/udev/hwdb.bin"... === trie on-disk === tool version: 249 file size: 11124932 bytes header size 80 bytes strings 2374708 bytes nodes 8750144 bytes Load module index Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy Found container virtualization none. Network interface NamePolicy= disabled on kernel command line, ignoring. Loaded timestamp for '/etc/systemd/network'. Loaded timestamp for '/run/systemd/network'. Parsed configuration file /usr/lib/systemd/network/99-default.link Parsed configuration file /usr/lib/systemd/network/73-usb-net-by-mac.link Created link configuration context. Loaded timestamp for '/etc/udev/rules.d'. Loaded timestamp for '/run/udev/rules.d'. Reading rules file: /usr/lib/udev/rules.d/01-md-raid-creating.rules Reading rules file: /etc/udev/rules.d/30-persistent-rdma.rules Reading rules file: /usr/lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules Reading rules file: /usr/lib/udev/rules.d/40-vm-hotadd.rules Reading rules file: /usr/lib/udev/rules.d/50-apport.rules Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules Reading rules file: /usr/lib/udev/rules.d/55-dm.rules Reading rules file: /usr/lib/udev/rules.d/55-scsi-sg3_id.rules Reading rules file: /usr/lib/udev/rules.d/56-dm-mpath.rules Reading rules file: /usr/lib/udev/rules.d/56-dm-parts.rules Reading rules file: /usr/lib/udev/rules.d/56-lvm.rules Reading rules file: /usr/lib/udev/rules.d/58-scsi-sg3_symlink.rules Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules Reading rules file: /usr/lib/udev/rules.d/60-block.rules Reading rules file: /usr/lib/udev/rules.d/60-bridge-network-interface.rules Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules Reading rules file: /usr/lib/udev/rules.d/60-drm.rules Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules Reading rules file: /usr/lib/udev/rules.d/60-multipath.rules Reading rules file: /usr/lib/udev/rules.d/60-open-vm-tools.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules Reading rules file: /usr/lib/udev/rules.d/60-rdma-ndd.rules Reading rules file: /usr/lib/udev/rules.d/60-rdma-persistent-naming.rules Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules Reading rules file: /usr/lib/udev/rules.d/60-serial.rules Reading rules file: /usr/lib/udev/rules.d/60-srp_daemon.rules Reading rules file: /usr/lib/udev/rules.d/60-tpm-udev.rules Reading rules file: /usr/lib/udev/rules.d/60-xpmem.rules Reading rules file: /usr/lib/udev/rules.d/61-persistent-storage-android.rules Reading rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs-dm.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs-zoned.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules Reading rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules Reading rules file: /usr/lib/udev/rules.d/66-azure-ephemeral.rules Reading rules file: /usr/lib/udev/rules.d/66-snapd-autoimport.rules Reading rules file: /usr/lib/udev/rules.d/68-del-part-nodes.rules Reading rules file: /usr/lib/udev/rules.d/69-bcache.rules Reading rules file: /usr/lib/udev/rules.d/69-lvm-metad.rules Reading rules file: /usr/lib/udev/rules.d/69-md-clustered-confirm-device.rules Reading rules file: /usr/lib/udev/rules.d/70-iscsi-network-interface.rules Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules Reading rules file: /usr/lib/udev/rules.d/70-memory.rules Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules Reading rules file: /usr/lib/udev/rules.d/70-open-iscsi.rules Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules Reading rules file: /etc/udev/rules.d/70-snap.snapd.rules Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules Reading rules file: /usr/lib/udev/rules.d/71-nvidia.rules Reading rules file: /usr/lib/udev/rules.d/71-power-switch-proliant.rules Reading rules file: /usr/lib/udev/rules.d/71-seat.rules Reading rules file: /usr/lib/udev/rules.d/71-u-d-c-gpu-detection.rules Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules Reading rules file: /usr/lib/udev/rules.d/75-rdma-description.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-qcom-soc.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-sierra.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules Reading rules file: /usr/lib/udev/rules.d/78-graphics-card.rules Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules Reading rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules Reading rules file: /usr/lib/udev/rules.d/83-mlnx-sf-name.rules Reading rules file: /usr/lib/udev/rules.d/85-hdparm.rules Reading rules file: /usr/lib/udev/rules.d/90-bolt.rules Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules Reading rules file: /usr/lib/udev/rules.d/90-fwupd-devices.rules Reading rules file: /usr/lib/udev/rules.d/90-ib.rules Reading rules file: /run/udev/rules.d/90-netplan.rules Reading rules file: /usr/lib/udev/rules.d/90-rdma-umad.rules Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules Reading rules file: /usr/lib/udev/rules.d/95-kpartx.rules Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules Reading rules file: /usr/lib/udev/rules.d/99-lxd-agent.rules Reading rules file: /etc/udev/rules.d/99-persistent-rdma.rules Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules Reading rules file: /usr/lib/udev/rules.d/99-vmware-scsi-udev.rules value '[dmi/id]sys_vendor' is 'Giga Computing' value '[dmi/id]sys_vendor' is 'Giga Computing' mlx5_7: /usr/lib/udev/rules.d/75-rdma-description.rules:41 Importing properties from results of builtin command 'hwdb --subsystem=pci' mlx5_7: hwdb modalias key: "pci:v000015B3d00001021sv000015B3sd00000022bc02sc07i00" mlx5_7: sd-device: Created db file '/run/udev/data/+infiniband:mlx5_7' for '/devices/pci0000:c7/0000:c7:01.0/0000:c8:00.0/0000:c9:00.0/0000:ca:00.0/0000:cb:00.0/0000:cc:00.0/infiniband/mlx5_7' DEVPATH=/devices/pci0000:c7/0000:c7:01.0/0000:c8:00.0/0000:c9:00.0/0000:ca:00.0/0000:cb:00.0/0000:cc:00.0/infiniband/mlx5_7 NAME=mlx5_7 ACTION=add SUBSYSTEM=infiniband TAGS=:systemd: CURRENT_TAGS=:systemd: SYSTEMD_WANTS=rdma-ndd.service ID_RDMA_INFINIBAND=1 ID_RDMA_ROCE=1 ID_BUS=pci ID_VENDOR_ID=0x15b3 ID_MODEL_ID=0x1021 ID_PCI_CLASS_FROM_DATABASE=Network controller ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller ID_VENDOR_FROM_DATABASE=Mellanox Technologies ID_MODEL_FROM_DATABASE=MT2910 Family [ConnectX-7] USEC_INITIALIZED=162756069 Unload module index Unloaded link configuration context. root@test-10-1-18-12:/home/test/gpu-burn#
最新发布
06-07
### 调试 Linux 系统中 udev 对 Mellanox ConnectX-7 (mlx5_7) 设备的规则处理问题 在调试 Linux 系统中 udev 对 Mellanox ConnectX-7 (mlx5_7) 设备的规则处理问题时,可以按照以下方法进行操作: #### 1. 检查现有 udev 规则 Mellanox OFED 驱动安装后会创建特定的 udev 规则文件。这些规则通常位于 `/etc/udev/rules.d/` 目录下。例如,`82-net-setup-link.rules` 文件可能包含以下内容[^3]: ```plaintext SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}!="", ATTR{phys_port_name}!="", \ IMPORT{program}="/etc/infiniband/vf-net-link-name.sh $attr{phys_port_name} $attr{phys_switch_id}" \ NAME="$env{NAME}", RUN+="/sbin/ethtool -L $env{NAME} combined 4", GOTO="net_setup_skip_link_name" ``` 上述规则定义了如何为 Mellanox 网卡分配名称,并设置队列数。 #### 2. 使用 `udevadm` 测试规则 为了验证规则是否正确匹配 mlx5_7 设备,可以使用 `udevadm test` 命令。例如: ```bash udevadm test /sys/class/net/<interface_name> ``` 将 `<interface_name>` 替换为实际的网卡接口名称(如 `ens1f0`)。此命令会输出 udev 在设备添加时执行的所有操作和规则匹配情况。 #### 3. 检查日志信息 通过查看系统日志,可以进一步分析 udev 的行为。使用以下命令检查日志: ```bash journalctl -k | grep udev ``` 如果发现错误或警告信息,可以根据提示调整规则文件。 #### 4. 修改或创建自定义规则 如果默认规则无法满足需求,可以创建自定义规则文件。例如,在 `/etc/udev/rules.d/99-custom-mlx5.rules` 中添加以下内容: ```plaintext ACTION=="add", SUBSYSTEM=="net", KERNEL=="mlx5*", ENV{ID_NET_NAME_MAC}="eth_custom_$kernel" ``` 上述规则为所有 mlx5 网卡分配一个固定的名称前缀 `eth_custom_`[^3]。 #### 5. 重新加载 udev 规则 修改规则文件后,需要重新加载 udev 规则并触发设备重命名: ```bash udevadm control --reload-rules udevadm trigger ``` #### 6. 检查 RoCE 功能的影响 如果虚拟机上不需要启用 RoCE 功能,可以通过禁用该功能来减少资源消耗。具体方法是在主机上配置 VF 接口的 RoCE 状态[^1]。例如: ```bash echo 0 > /sys/class/net/<VF_interface>/roce/enabled ``` #### 7. 热插拔 VF 接口到虚拟机 在虚拟化环境中,可以通过 `virsh` 命令将新添加的 VF 接口热插拔到正在运行的虚拟机中[^2]: ```bash virsh attach-interface <vm_name> hostdev <PCI_address> --managed --live --config ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值