当前位置: 首页 > wzjs >正文

wordpress删除主题时执行沂seo网站推广

wordpress删除主题时执行,沂seo网站推广,高水平大学建设大学网站,企业网站维护费用驱动开发 如何创建系统属性节点 直接在sys/目录下创建 文章目录 驱动开发前言一、代码添加二、编译三、 验证总结 前言 最简单的系统属性节点控制GPIO 一、代码添加 在AU_LINUX_ANDROID_LA.VENDOR.1.0\kernel_platform\msm-kernel\drivers\misc\目录下新建test.c #include …

驱动开发

如何创建系统属性节点
直接在sys/目录下创建


文章目录

  • 驱动开发
  • 前言
  • 一、代码添加
  • 二、编译
  • 三、 验证
  • 总结


前言

最简单的系统属性节点控制GPIO


一、代码添加

在AU_LINUX_ANDROID_LA.VENDOR.1.0\kernel_platform\msm-kernel\drivers\misc\目录下新建test.c

#include <linux/module.h>
#include <linux/kobject.h>
#include <linux/sysfs.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/list.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/ctype.h>
#include <linux/platform_device.h>
#include <linux/reboot.h>
#include <linux/kdev_t.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <asm/io.h>
#include <linux/ioport.h>static ssize_t eth_en_store(struct kobject *dev,struct kobj_attribute  *attr,const char *buf, size_t len)
{unsigned long new;if (kstrtoul(buf, 0, &new)) {pr_err("%s kstrtoul err\n", __func__);return -EINVAL;}if (!!new == 1) {pr_err("%s set 1, g_rtase_resume\n", __func__);} else {pr_err("%s set 0, g_rtase_suspend\n", __func__);}return len;
}static ssize_t eth_en_show(struct kobject *dev,struct kobj_attribute  *attr, char *buf)
{return sprintf(buf, "%s\n", "sucess");
}static struct kobj_attribute eth_en_attribute_attr =__ATTR(eth_en, S_IWUSR|S_IRUGO, eth_en_show, eth_en_store);static struct attribute *sysfs_eth_en_attributes[] = {&eth_en_attribute_attr.attr,NULL
};static const struct attribute_group sysfs_eth_en_attr_group = {.attrs = sysfs_eth_en_attributes,
};static const struct of_device_id of_test_demo_match[] = {{ .compatible = "test-demo", },{},
};static int test_mode_probe(struct platform_device *pdev)
{printk(KERN_INFO "%s start...\n",__func__);return 0;
}static int test_mode_remove(struct platform_device *pdev)
{return 0;
}static struct platform_driver test_mode_driver = {.probe      = test_mode_probe,.remove     = test_mode_remove,.driver     = {.name   = "test",.owner  = THIS_MODULE,.of_match_table = of_match_ptr(of_test_demo_match),},
};static int test_driver_init(void)
{if ((k_obj = kobject_create_and_add("test_demo", NULL)) == NULL ) {pr_err("sysfs_demo sys node create error \n");}if(sysfs_create_group(k_obj, &sysfs_eth_en_attr_group) ) {pr_err("sysfs_create_group failed\n");}return platform_driver_register(&test_demo_driver);
}static void test_driver_exit(void)
{printk(KERN_INFO "%s,%d: Enter\n",__func__,__LINE__);if (k_obj) {sysfs_remove_group(k_obj, &sysfs_eth_en_attr_group);kobject_put(k_obj);}platform_driver_unregister(&test_demo_driver);return;
}module_init(test_driver_init);
module_exit(test_driver_exit);MODULE_AUTHOR("zh@testsmart.com");
MODULE_DESCRIPTION("testSmart Hardware Verion driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:test-mode-driver");

修改misc目录下的Makefile
AU_LINUX_ANDROID_LA.VENDOR.1.0\kernel_platform\msm-kernel\drivers\misc\Makefile

+obj-m	+= test_reboot.o

注:obj-m最好是以宏控的方式控制,当然也可以以obj-y的方式编译进内核,后续详细介绍

二、编译

以骁龙8 gen1 plus平台为例
在AU_LINUX_ANDROID_LA.VENDOR.1.0目录下执行:

xxxx@u99:~/AU_LINUX_ANDROID_LA.VENDOR.1.0$bash kernel_platform/qcom/proprietary/prebuilt_HY11/vendorsetup.shxxxx@u99:~/AU_LINUX_ANDROID_LA.VENDOR.1.0$cd kernel_platform/xxxx@u99:~/AU_LINUX_ANDROID_LA.VENDOR.1.0/kernel_platform$BUILD_CONFIG=./common/build.config.msm.waipio ./build/all-variants.sh "./build/build.sh"

如上编译完成后AU_LINUX_ANDROID_LA.VENDOR.1.0\kernel_platform\out\msm-waipio-waipio-consolidate\dist\目录下会生成hello_world.ko;push到设备中验证即可。

三、 验证

adb push AU_LINUX_ANDROID_LA.VENDOR.1.0\kernel_platform\out\msm-waipio-waipio-consolidate\dist\test_reboot.ko /vendor_dlkm/lib/modules/

adb push AU_LINUX_ANDROID_LA.VENDOR.1.0\kernel_platform\out\msm-waipio-waipio-consolidate\dist\test_reboot.ko /vendor/lib/modules/

taro:/ # insmod vendor/lib/modules/test_reboot.ko
taro:/ # taro:/ # find sys/ |grep force_reboot
sys/class/test_class/force_reboottaro:/ # cat sys/class/test_class/force_reboot
0
taro:/ # echo 1 > sys/class/test_class/force_reboot//echo 1 即可重启

总结

关于kobject相关的函数后续继续更新,这个是linux的核心函数


文章转载自:

http://5aeWYc7z.myfwb.cn
http://u4jKaNlm.myfwb.cn
http://jjGqrZ1L.myfwb.cn
http://wWfBdoUs.myfwb.cn
http://cQ1S0R4V.myfwb.cn
http://8atII3l4.myfwb.cn
http://yUK5Qbxf.myfwb.cn
http://bYr7sMbi.myfwb.cn
http://lMb7yeng.myfwb.cn
http://8BXrdyhm.myfwb.cn
http://5Gd9lbB7.myfwb.cn
http://O0eYqhYx.myfwb.cn
http://HSCzDskg.myfwb.cn
http://7HFj0rrY.myfwb.cn
http://CBWMaxFf.myfwb.cn
http://spPFNica.myfwb.cn
http://pfQcq48J.myfwb.cn
http://WsEqipNe.myfwb.cn
http://xNkEz05y.myfwb.cn
http://0fApucmA.myfwb.cn
http://d2EEztxg.myfwb.cn
http://za5KsbqV.myfwb.cn
http://luIWeCVH.myfwb.cn
http://g442QSlC.myfwb.cn
http://ue11b3fw.myfwb.cn
http://LDgCSmOT.myfwb.cn
http://3Rt8QhQn.myfwb.cn
http://19D4NhSI.myfwb.cn
http://ofURc3Mo.myfwb.cn
http://nJ2jBPtV.myfwb.cn
http://www.dtcms.com/wzjs/719760.html

相关文章:

  • 网站建设企业模板下载软件开发工资高吗
  • 百度站长管理平台在线简历制作网站免费
  • 企业网站优化报价seo公司是什么意思
  • app软件下载站seo教程做网站 侵权
  • 如何自己做代理网站的想法填空秒懂网站
  • 莱芜新闻电视台节目表长春seo代理
  • 做的王者荣耀钓鱼网站seo优化找行者seo
  • 电视直播网站开发广州定制家具厂
  • 源码之家网站印度搜索引擎 龙之向导
  • 数据库修改网站管理员密码网站受到攻击会怎么样
  • 做seo的网站网站开发岗位之间的关联
  • 免费推广做产品的网站网站开发工程师岗位职责
  • wordpress vlutr专业培训seo的机构
  • 如何建一个简单的网站网销外包
  • 网站缩略图尺寸上国外网站哪个dns快
  • 长春建站方法做搜狗pc网站优
  • 专业人士怎样建网站wordpress技术cms主题
  • 饮水机企业网站模板网站建设需要考虑因素
  • 网站维护是不是很难做微信里借钱的小程序
  • 永久免费的自建网站外包加工官网
  • 怎么做能让网站收录的快互站网站源码
  • 东莞市网站设计做网站现在还行吗
  • 西安免费做网站价格佛山市seo网站设计哪家好
  • 网站建设的规模与类别网络营销推广活动方案
  • 网站建设 中国联盟网书画网站建设方案策划
  • 创建网站平台wordpress 被黑
  • 怎样建设凡科网站网站建设与维护管理办法
  • 网站更新提示怎末做手机怎么解除禁止访问网页
  • 东莞专业拍摄做网站照片徐州市住房和城乡建设局网站
  • 天津做网站找谁长沙网站开发湖南微联讯点不错