Tinker Board Forum

Full Version: Compiling Tinkerboard's Android
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10
Please use the code button to show the code here. It is for better readness.
And please show the relevant part of code of hid-core.c, for at least some lines before your insertation and some lines behind the 2307.
[/code]yoza@yoza-eME732:~$ repo init -u https://git@bitbucket.org/TinkerBoard_An...nifest.git -b /sbc/tinkerboard/asus/Android-6.0.1 -m android_20180712_v13.14.0.95.xml
fatal: Invalid refspec '+refs/heads//sbc/tinkerboard/asus/Android-6.0.1:refs/remotes/origin//sbc/tinkerboard/asus/Android-6.0.1'
fatal: Invalid refspec '+refs/heads//sbc/tinkerboard/asus/Android-6.0.1:refs/remotes/origin//sbc/tinkerboard/asus/Android-6.0.1'
fatal: cannot obtain manifest https://git@bitbucket.org/TinkerBoard_An...nifest.git
yoza@yoza-eME732:~$ repo init -u https://git@bitbucket.org/TinkerBoard_An...nifest.git -b /sbc/tinkerboard/asus/Android-6.0.1
fatal: Invalid refspec '+refs/heads//sbc/tinkerboard/asus/Android-6.0.1:refs/remotes/origin//sbc/tinkerboard/asus/Android-6.0.1'
fatal: Invalid refspec '+refs/heads//sbc/tinkerboard/asus/Android-6.0.1:refs/remotes/origin//sbc/tinkerboard/asus/Android-6.0.1'
fatal: cannot obtain manifest https://git@bitbucket.org/TinkerBoard_An...nifest.git


yoza@yoza-eME732:~/YOZA$ cd kernel
yoza@yoza-eME732:~/YOZA/kernel$ make ARCH=arm rockchip_defconfig
arch/arm/configs/rockchip_defconfig:305:warning: override: RTL8723BS changes choice state
#
# configuration written to .config
#

#### make completed successfully (2 seconds) ####

yoza@yoza-eME732:~/YOZA/kernel$ make ARCH=arm rk3288-miniarm.img -j4
scripts/kconfig/conf --silentoldconfig Kconfig
 CHK     include/generated/uapi/linux/version.h
 CHK     include/generated/utsrelease.h
 HOSTCC  scripts/kallsyms
 CC      scripts/mod/empty.o
 HOSTCC  scripts/pnmtologo
 HOSTCC  scripts/sortextable
 CC      scripts/mod/devicetable-offsets.s
scripts/sortextable.c:68:1: warning: ‘succeed_file’ defined but not used [-Wunused-function]
succeed_file(void)
^~~~~~~~~~~~
make[1]: 'include/generated/mach-types.h' is up to date.
 MKELF   scripts/mod/elfconfig.h
 GEN     scripts/mod/devicetable-offsets.h
 HOSTCC  scripts/mod/file2alias.o
 HOSTCC  scripts/mod/modpost.o
 HOSTCC  scripts/mod/sumversion.o
 CC      kernel/bounds.s
 GEN     include/generated/bounds.h
 CC      arch/arm/kernel/asm-offsets.s
 HOSTLD  scripts/mod/modpost
 ......................................................................
 
 CC      net/ipv4/protocol.o
 CC      drivers/gpu/arm/midgard/backend/gpu/mali_kbase_pm_policy.o
 CC      net/core/neighbour.o
 CC      lib/zlib_inflate/infutil.o
 CC      lib/zlib_inflate/inftrees.o
 CC      net/ipv4/ip_input.o
 CC      lib/zlib_inflate/inflate_syms.o
 CC      drivers/gpu/arm/midgard/backend/gpu/mali_kbase_time.o
 LD      lib/zlib_inflate/zlib_inflate.o
 LD      lib/zlib_inflate/built-in.o
 CC      lib/textsearch.o
 CC      lib/ts_kmp.o
 LD      drivers/gpu/arm/midgard/mali_kbase.o
 CC      net/ipv4/ip_fragment.o
 LD      drivers/gpu/arm/midgard/built-in.o
 LD      drivers/gpu/arm/built-in.o
 CC      lib/ts_bm.o
 LD      drivers/gpu/built-in.o
 CC      drivers/hid/hid-lg.o
 CC      lib/ts_fsm.o
 CC      net/core/rtnetlink.o
 CC      lib/percpu_counter.o
 CC      net/ipv4/ip_forward.o
 CC      drivers/hid/hid-lgff.o
 CC      lib/audit.o
 CC      net/ipv4/ip_options.o
 CC      drivers/hid/hid-lg2ff.o
 CC      lib/syscall.o
 CC      drivers/hid/hid-lg3ff.o
 CC      lib/nlattr.o
 CC      net/core/utils.o
 CC      drivers/hid/hid-lg4ff.o
 CC      net/ipv4/ip_output.o
 CC      lib/average.o
 CC      net/core/link_watch.o
 CC      drivers/hid/hid-picolcd_core.o
 CC      lib/cpu_rmap.o
 CC      lib/dynamic_queue_limits.o
 CC      lib/strncpy_from_user.o
 CC      net/core/filter.o
 CC      drivers/hid/hid-picolcd_debugfs.o
 CC      lib/strnlen_user.o
 CC      lib/pie.o
 CC      net/ipv4/ip_sockglue.o
 CC      lib/oid_registry.o
 CC      net/core/sock_diag.o
 CC      drivers/hid/hid-wiimote-core.o
 CC      lib/argv_split.o
 CC      lib/bug.o
 CC      net/core/dev_ioctl.o
 CC      lib/cmdline.o
 CC      lib/cpumask.o
 CC      net/ipv4/inet_hashtables.o
 CC      lib/ctype.o
 CC      lib/dec_and_lock.o
 CC      drivers/hid/hid-wiimote-ext.o
 CC      net/core/flow.o
 CC      net/ipv4/inet_timewait_sock.o
 CC      lib/decompress.o
 CC      lib/decompress_bunzip2.o
 CC      drivers/hid/hid-wiimote-debug.o
 CC      net/core/net-sysfs.o
 CC      lib/decompress_inflate.o
 CC      drivers/hid/hid-debug.o
 CC      net/ipv4/inet_connection_sock.o
 CC      lib/decompress_unlzma.o
 CC      drivers/hid/hid-core.o
 CC      lib/dump_stack.o
 CC      net/core/net-procfs.o
 CC      lib/earlycpio.o
drivers/hid/hid-core.c: In function 'hid_ignore':
drivers/hid/hid-core.c:2307:27: error: expected expression before '/' token
 CC      lib/extable.o
scripts/Makefile.build:308: recipe for target 'drivers/hid/hid-core.o' failed
make[2]: *** [drivers/hid/hid-core.o] Error 1
scripts/Makefile.build:455: recipe for target 'drivers/hid' failed
make[1]: *** [drivers/hid] Error 2
Makefile:829: recipe for target 'drivers' failed
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....

 CC      lib/fdt.o
 CC      net/ipv4/tcp.o
 CC      lib/fdt_empty_tree.o
 CC      lib/fdt_ro.o
 CC      net/core/fib_rules.o
 CC      net/core/net-traces.o
 CC      lib/fdt_rw.o
 CC      lib/fdt_strerror.o
 CC      lib/fdt_sw.o
 CC      lib/fdt_wip.o
 LD      net/core/built-in.o
 CC      lib/flex_proportions.o
 CC      lib/idr.o
 CC      lib/int_sqrt.o
 CC      net/ipv4/tcp_input.o
 CC      lib/ioremap.o
 CC      lib/irq_regs.o
 CC      net/key/af_key.o
 CC      net/ipv6/af_inet6.o
 CC      lib/is_single_threaded.o
 CC      lib/klist.o
 CC      lib/kobject.o
 CC      net/ipv6/anycast.o
 CC      lib/kobject_uevent.o
 CC      net/ipv6/ip6_output.o
 CC      net/ipv4/tcp_output.o



#### make failed to build some targets (06:19 (mmConfuseds)) ####

Code:
code]yoza@yoza-eME732:~/YOZA/kernel$ cd drivers/hid
yoza@yoza-eME732:~/YOZA/kernel/drivers/hid$ cat hid-core.c
/*
*  HID support for Linux
*
*  Copyright (c) 1999 Andreas Gal
*  Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
*  Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc
*  Copyright (c) 2006-2012 Jiri Kosina
*/

/*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*/

#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include <linux/module.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/mm.h>
#include <linux/spinlock.h>
#include <asm/unaligned.h>
#include <asm/byteorder.h>
#include <linux/input.h>
#include <linux/wait.h>
#include <linux/vmalloc.h>
#include <linux/sched.h>
#include <linux/semaphore.h>

#include <linux/hid.h>
#include <linux/hiddev.h>
#include <linux/hid-debug.h>
#include <linux/hidraw.h>

#include "hid-ids.h"

/*
* Version Information
*/

#define DRIVER_DESC "HID core driver"
#define DRIVER_LICENSE "GPL"

int hid_debug = 0;
module_param_named(debug, hid_debug, int, 0600);
MODULE_PARM_DESC(debug, "toggle HID debugging messages");
EXPORT_SYMBOL_GPL(hid_debug);

static int hid_ignore_special_drivers = 0;
module_param_named(ignore_special_drivers, hid_ignore_special_drivers, int, 0600);
MODULE_PARM_DESC(debug, "Ignore any special drivers and handle all devices by generic driver");

/*
* Register a new report for a device.
*/

struct hid_report *hid_register_report(struct hid_device *device, unsigned type, unsigned id)
{
struct hid_report_enum *report_enum = device->report_enum + type;
struct hid_report *report;

if (id >= HID_MAX_IDS)
return NULL;
if (report_enum->report_id_hash[id])
return report_enum->report_id_hash[id];

report = kzalloc(sizeof(struct hid_report), GFP_KERNEL);
if (!report)
return NULL;

if (id != 0)
report_enum->numbered = 1;

report->id = id;
report->type = type;
report->size = 0;
report->device = device;
report_enum->report_id_hash[id] = report;

list_add_tail(&report->list, &report_enum->report_list);

return report;
}
EXPORT_SYMBOL_GPL(hid_register_report);

/*
* Register a new field for this report.
*/

static struct hid_field *hid_register_field(struct hid_report *report, unsigned usages, unsigned values)
{
struct hid_field *field;

if (report->maxfield == HID_MAX_FIELDS) {
hid_err(report->device, "too many fields in report\n");
return NULL;
}

field = kzalloc((sizeof(struct hid_field) +
usages * sizeof(struct hid_usage) +
values * sizeof(unsigned)), GFP_KERNEL);
if (!field)
return NULL;

field->index = report->maxfield++;
report->field[field->index] = field;
field->usage = (struct hid_usage *)(field + 1);
field->value = (s32 *)(field->usage + usages);
field->report = report;

return field;
...................................................................................
static const struct hid_device_id hid_mouse_ignore_list[] = {
/* appletouch driver */
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER3_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER3_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER3_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING8_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING8_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
{ }
};

bool hid_ignore(struct hid_device *hdev)
{
if (hdev->quirks & HID_QUIRK_NO_IGNORE)
return false;
if (hdev->quirks & HID_QUIRK_IGNORE)
return true;

switch (hdev->vendor) {
case USB_VENDOR_ID_CODEMERCS:
/* ignore all Code Mercenaries IOWarrior devices */
if (hdev->product >= USB_DEVICE_ID_CODEMERCS_IOW_FIRST &&
hdev->product <= USB_DEVICE_ID_CODEMERCS_IOW_LAST)
return true;
break;
case USB_VENDOR_ID_DWAV:*/
/* These are handled by usbtouchscreen. hdev->type is probably
* HID_TYPE_USBNONE, but we say !HID_TYPE_USBMOUSE to match
* usbtouchscreen. */
/*if ((hdev->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ||
     hdev->product == USB_DEVICE_ID_DWAV_TOUCHCONTROLLER) &&
     hdev->type !=HID_TYPE_USBMOUSE)
return true;
break;*/
case USB_VENDOR_ID_LOGITECH:
if (hdev->product >= USB_DEVICE_ID_LOGITECH_HARMONY_FIRST &&
hdev->product <= USB_DEVICE_ID_LOGITECH_HARMONY_LAST)
return true;
/*
* The Keene FM transmitter USB device has the same USB ID as
* the Logitech AudioHub Speaker, but it should ignore the hid.
* Check if the name is that of the Keene device.
* For reference: the name of the AudioHub is
* "HOLTEK  AudioHub Speaker".
*/
if (hdev->product == USB_DEVICE_ID_LOGITECH_AUDIOHUB &&
!strcmp(hdev->name, "HOLTEK  B-LINK USB Audio  "))
return true;
break;
case USB_VENDOR_ID_SOUNDGRAPH:
if (hdev->product >= USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST &&
  hdev->product <= USB_DEVICE_ID_SOUNDGRAPH_IMON_LAST)
return true;
break;
case USB_VENDOR_ID_HANWANG:
if (hdev->product >= USB_DEVICE_ID_HANWANG_TABLET_FIRST &&
  hdev->product <= USB_DEVICE_ID_HANWANG_TABLET_LAST)
return true;
break;
case USB_VENDOR_ID_JESS:
if (hdev->product == USB_DEVICE_ID_JESS_YUREX &&
hdev->type == HID_TYPE_USBNONE)
return true;
break;
case USB_VENDOR_ID_VELLEMAN:
/* These are not HID devices.  They are handled by comedi. */
if ((hdev->product >= USB_DEVICE_ID_VELLEMAN_K8055_FIRST &&
   hdev->product <= USB_DEVICE_ID_VELLEMAN_K8055_LAST) ||
  (hdev->product >= USB_DEVICE_ID_VELLEMAN_K8061_FIRST &&
   hdev->product <= USB_DEVICE_ID_VELLEMAN_K8061_LAST))
return true;
break;
case USB_VENDOR_ID_ATMEL_V_USB:
/* Masterkit MA901 usb radio based on Atmel tiny85 chip and
* it has the same USB ID as many Atmel V-USB devices. This
* usb radio is handled by radio-ma901.c driver so we want
* ignore the hid. Check the name, bus, product and ignore
* if we have MA901 usb radio.
*/
if (hdev->product == USB_DEVICE_ID_ATMEL_V_USB &&
hdev->bus == BUS_USB &&
strncmp(hdev->name, "www.masterkit.ru MA901", 22) == 0)
return true;
break;
}

if (hdev->type == HID_TYPE_USBMOUSE &&
hid_match_id(hdev, hid_mouse_ignore_list))
return true;

return !!hid_match_id(hdev, hid_ignore_list);
}
EXPORT_SYMBOL_GPL(hid_ignore);

int hid_add_device(struct hid_device *hdev)
{
static atomic_t id = ATOMIC_INIT(0);
int ret;

if (WARN_ON(hdev->status & HID_STAT_ADDED))
return -EBUSY;

/* we need to kill them here, otherwise they will stay allocated to
* wait for coming driver */
if (hid_ignore(hdev))
return -ENODEV;

/*
* Read the device report descriptor once and use as template
* for the driver-specific modifications.
*/
ret = hdev->ll_driver->parse(hdev);
if (ret)
return ret;
if (!hdev->dev_rdesc)
return -ENODEV;

/*
* Scan generic devices for group information
*/
if (hid_ignore_special_drivers ||
  !hid_match_id(hdev, hid_have_special_driver)) {
ret = hid_scan_report(hdev);
if (ret)
hid_warn(hdev, "bad device descriptor (%d)\n", ret);
}

/* XXX hack, any other cleaner solution after the driver core
* is converted to allow more than 20 bytes as the device name? */
dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
   hdev->vendor, hdev->product, atomic_inc_return(&id));

hid_debug_register(hdev, dev_name(&hdev->dev));
ret = device_add(&hdev->dev);
if (!ret)
hdev->status |= HID_STAT_ADDED;
else
hid_debug_unregister(hdev);

return ret;
}
EXPORT_SYMBOL_GPL(hid_add_device);

/**
* hid_allocate_device - allocate new hid device descriptor
*
* Allocate and initialize hid device, so that hid_destroy_device might be
* used to free it.
*
* New hid_device pointer is returned on success, otherwise ERR_PTR encoded
* error value.
*/
struct hid_device *hid_allocate_device(void)
{
struct hid_device *hdev;
int ret = -ENOMEM;

hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
if (hdev == NULL)
return ERR_PTR(ret);

device_initialize(&hdev->dev);
hdev->dev.release = hid_device_release;
hdev->dev.bus = &hid_bus_type;

hid_close_report(hdev);

init_waitqueue_head(&hdev->debug_wait);
INIT_LIST_HEAD(&hdev->debug_list);
spin_lock_init(&hdev->debug_list_lock);
sema_init(&hdev->driver_lock, 1);
sema_init(&hdev->driver_input_lock, 1);

return hdev;
}
EXPORT_SYMBOL_GPL(hid_allocate_device);

static void hid_remove_device(struct hid_device *hdev)
{
if (hdev->status & HID_STAT_ADDED) {
device_del(&hdev->dev);
hid_debug_unregister(hdev);
hdev->status &= ~HID_STAT_ADDED;
}
kfree(hdev->dev_rdesc);
hdev->dev_rdesc = NULL;
hdev->dev_rsize = 0;
}

/**
* hid_destroy_device - free previously allocated device
*
* @hdev: hid device
*
* If you allocate hid_device through hid_allocate_device, you should ever
* free by this function.
*/
void hid_destroy_device(struct hid_device *hdev)
{
hid_remove_device(hdev);
put_device(&hdev->dev);
}
EXPORT_SYMBOL_GPL(hid_destroy_device);

int __hid_register_driver(struct hid_driver *hdrv, struct module *owner,
const char *mod_name)
{
int ret;

hdrv->driver.name = hdrv->name;
hdrv->driver.bus = &hid_bus_type;
hdrv->driver.owner = owner;
hdrv->driver.mod_name = mod_name;

INIT_LIST_HEAD(&hdrv->dyn_list);
spin_lock_init(&hdrv->dyn_lock);

ret = driver_register(&hdrv->driver);
if (ret)
return ret;

ret = driver_create_file(&hdrv->driver, &driver_attr_new_id);
if (ret)
driver_unregister(&hdrv->driver);

return ret;
}
EXPORT_SYMBOL_GPL(__hid_register_driver);

void hid_unregister_driver(struct hid_driver *hdrv)
{
driver_remove_file(&hdrv->driver, &driver_attr_new_id);
driver_unregister(&hdrv->driver);
hid_free_dynids(hdrv);
}
EXPORT_SYMBOL_GPL(hid_unregister_driver);

int hid_check_keys_pressed(struct hid_device *hid)
{
struct hid_input *hidinput;
int i;

if (!(hid->claimed & HID_CLAIMED_INPUT))
return 0;

list_for_each_entry(hidinput, &hid->inputs, list) {
for (i = 0; i < BITS_TO_LONGS(KEY_MAX); i++)
if (hidinput->input->key[i])
return 1;
}

return 0;
}

EXPORT_SYMBOL_GPL(hid_check_keys_pressed);

static int __init hid_init(void)
{
int ret;

if (hid_debug)
pr_warn("hid_debug is now used solely for parser and driver debugging.\n"
"debugfs is now used for inspecting the device (report descriptor, reports)\n");

ret = bus_register(&hid_bus_type);
if (ret) {
pr_err("can't register hid bus\n");
goto err;
}

ret = hidraw_init();
if (ret)
goto err_bus;

hid_debug_init();

return 0;
err_bus:
bus_unregister(&hid_bus_type);
err:
return ret;
}

static void __exit hid_exit(void)
{
hid_debug_exit();
hidraw_exit();
bus_unregister(&hid_bus_type);
}

module_init(hid_init);
module_exit(hid_exit);

MODULE_AUTHOR("Andreas Gal");
MODULE_AUTHOR("Vojtech Pavlik");
MODULE_AUTHOR("Jiri Kosina");
MODULE_LICENSE(DRIVER_LICENSE);

[/code]
Hi YoZa,
you probably need to remove some '*/' and '/*' and it should look like this:
Code:
case USB_VENDOR_ID_DWAV:
/* These are handled by usbtouchscreen. hdev->type is probably
* HID_TYPE_USBNONE, but we say !HID_TYPE_USBMOUSE to match
* usbtouchscreen. */
if ((hdev->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ||
    hdev->product == USB_DEVICE_ID_DWAV_TOUCHCONTROLLER) &&
    hdev->type !=HID_TYPE_USBMOUSE)
return true;
break;
Remenber that '/*' is for beginning the comment and '*/' for ending.
I think we went over the problem with hid-core.c, but at the command:
Code:
make ARCH=arm rk3288-miniarm.img -j4
I'm getting:
Code:
yoza@yoza-eME732:~/YOZA/kernel$ make ARCH=arm rk3288-miniarm.img -j4
 CHK     include/generated/uapi/linux/version.h
 CC      scripts/mod/devicetable-offsets.s
 CHK     include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
 CALL    scripts/checksyscalls.sh
 GEN     scripts/mod/devicetable-offsets.h
 HOSTCC  scripts/mod/file2alias.o
 HOSTLD  scripts/mod/modpost
 CHK     include/generated/compile.h
make[1]: 'arch/arm/boot/dts/rk3288-miniarm.dtb' is up to date.
 GEN     drivers/video/rockchip/screen/lcd.h
 Kernel: arch/arm/boot/Image is ready
 LZO     arch/arm/boot/compressed/piggy.lzo
/bin/sh: 1: lzop: not found
/home/yoza/YOZA/kernel/arch/arm/boot/compressed/Makefile:196: recipe for target 'arch/arm/boot/compressed/piggy.lzo' failed
make[2]: *** [arch/arm/boot/compressed/piggy.lzo] Error 1
/home/yoza/YOZA/kernel/arch/arm/boot/Makefile:53: recipe for target 'arch/arm/boot/compressed/vmlinux' failed
make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2
/home/yoza/YOZA/kernel/arch/arm/Makefile:304: recipe for target 'zImage' failed
make: *** [zImage] Error 2

#### make failed to build some targets (7 seconds) ####

Thank you!
Code:
/bin/sh: 1: lzop: not found
There is missing a package lzop on your Ubuntu installation. To install:
Code:
sudo apt-get install lzop
Thanks again!
Now I'm stuck in step 3!
The error is:

Code:
yoza@yoza-eME732:~/YOZA$ make -j4 > buildlog.log 2>&1 &
[1] 27517
 
I opened the buildlog.log file and look like this:
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=6.0.1
TARGET_PRODUCT=rk3288
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a15
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.15.0-43-generic-x86_64-with-Ubuntu-18.04-bionic
HOST_BUILD_TYPE=release
BUILD_ID=MXC89K
OUT_DIR=out
============================================
Checking build tools versions...
Checking build tools versions...
************************************************************************************************************************

You are attempting to build with the incorrect version
You are attempting to build with the incorrect versionof java.

of java.

 Your version is: openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode).

The required version is: "1.7.x"Your version is: openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode).

 The required version is: "1.7.x"

Please follow the machine setup instructions at

Please follow the machine setup instructions at    https://source.android.com/source/initializing.html

************************************************************    https://source.android.com/source/initializing.html

************************************************************
build/core/main.mk:174: *** stop.  Stop.
build/core/main.mk:174: *** stop.  Stop.


#### make failed to build some targets #### make failed to build some targets (57 seconds) ####

(01:25 (mmConfuseds)) ####

Thanks!

I will have to install another version of JAVA?
[Image: LoTljVc.png]

I'm blocking at step 2, 1) I put the kernel and U-Boot in a folder that I name {croot} place in my office. 2) I right click in the folder {croot} and I open the terminal to enter the command indicated in step 2 of the tutorial. Am I good at making her?
Try to use git@bitbucket instead of bitbucket

or try this
Code:
repo init -u https://git@bitbucket.org/TinkerBoard_Android/manifest.git -b sbc/tinkerboard/asus/Android-7.1.2
[Image: mo0PNXC.jpg]

You are right! now it works but I have a new problem and I don't know where it comes from
kbungu wrote on the 1 page:
1, download repo.
"repo" is a tool created by google to handle the downloading/updating/uploading of the massive number of git repositories that compose Android. repo uses a manifest to instruct it on things like what remote to use, what branch to look at and even what exact commit to checkout. It is very powerful and is a great way to manage a large number of projects that are all inter-connected.

My instructions are basically stolen from Google's repo install Instructions, with minor adjustments:
Open a terminal and execute:

Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo
chmod a+x /usr/bin/repo


ensure that /usr/bin is in your $PATH. if it is not, add it
Code:
export PATH=$PATH:/usr/bin

and you have to check : https://source.android.com/setup/build/downloading


"lobo" can you help me again with my last post, please!
Pages: 1 2 3 4 5 6 7 8 9 10